在ItemsView
和ItemsView
的子类(例如ListBox
,ComboBox
,...)中,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/