【问题标题】:Disable ReactiveUI ItemsView.ItemTemplate hooking禁用 ReactiveUI ItemsView.ItemTemplate 挂钩
【发布时间】:2017-08-11 15:06:35
【问题描述】:

ItemsViewItemsView 的子类中,例如ListBoxComboBox,...,ReactiveUI 会自动设置ItemTemplate 属性。这使得将一堆视图模型添加到列表、将列表绑定到 ItemsView 并为每个视图模型拥有正确的视图变得很容易。

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

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

我该如何解决这个问题?

【问题讨论】:

    标签: c# wpf itemscontrol reactiveui itemtemplate


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多