【问题标题】:WPF ViewModel not active presenterWPF ViewModel 不是活动的演示者
【发布时间】:2011-06-09 13:52:28
【问题描述】:

有一个 ViewModel 由一些相关的对象(节点和线(, 如何在 View 中显示(同步)这些 VM 并保持对象连接。 我使用一些 DataTemplate 将模型映射到视图,但是每个对象都将同步(通过强大的绑定)与其相关对象,但是我如何将这个 DataTemplate 生成的 UI 元素链接(和同步)在一起。 我在这里从另一个角度描述问题: Sunchronizing view model and view

【问题讨论】:

    标签: wpf viewmodel diagram presenter


    【解决方案1】:

    为了让你的视图保持同步,你应该使用绑定,你的绑定源需要实现某些接口或者是依赖属性。对于您需要实现 INotifyCollectionChanged 的集合和您将使用 INotifyPropertyChanged 的属性,如果您随后更改源,您的视图也会更改。

    【讨论】:

    • 感谢您的帮助,但我这样做了,意味着我在视图模型中实现了 INotifyPropertyChanged。但我想将生成的 UI 元素相互链接,正如我所描述的,我使用 DataTemplate 生成它们。
    【解决方案2】:

    除了实现 INotifyPropertyChanged 和使用 ICollectionChanged (ObservableCollection) 并绑定到视图之外,当您想要支持数据的编辑时,您可以考虑实现 IEditableObject

    此界面允许您撤消编辑操作。如果不实现 IEditableObject,您将需要返回数据源以在取消修改时将其重置为原始值。 DataGrid 也支持该接口。

    【讨论】:

      【解决方案3】:

      您可以使用中继命令逻辑同步虚拟机和视图。

      您可以在此处查看示例锻炼

      Binding the "WindowState" property of a window in WPF using MVVM

      【讨论】:

        猜你喜欢
        • 2021-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-24
        • 1970-01-01
        • 2014-10-31
        • 2018-12-15
        相关资源
        最近更新 更多