ItemsViewItemsView的子类(例如ListBoxComboBox,...)中,ReactiveUI自动设置ItemTemplate属性。这使向列表中添加一堆视图模型,将列表绑定到ItemsView以及为每个视图模型提供正确的视图变得容易。

但是,有时这种行为是不希望的。例如,将常规对象列表绑定到ComboBox之后,我得到了异常“找不到MyNamespace.MyObject的视图”。

我可以通过在ComboBox上设置DisplayMemberPath属性来解决此问题,但是在编译时未知。我想将DisplayMemberPath从ViewModel绑定到View。不幸的是,这会产生以下异常:“ InvalidOperationException:不能同时设置DisplayMemberPath和ItemTemplate”

我怎样才能解决这个问题?

最佳答案

在控件上为DisplayMemberPath设置一个虚拟值,并保持DisplayMemberPath与ViewModel的绑定。 ReactiveUI将看到虚拟值,并且不会设置ItemTemplate属性。附加ViewModel后,将立即用绑定替换虚拟值,并且一切都会按预期进行。

关于c# - 禁用ReactiveUI ItemsView.ItemTemplate Hook ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45638376/

10-10 18:18