我用MVVM应用程序启动了一个新的WPF。主视图是一个有2列的网格:
- 左边是一个只有两个级别的树视图(以及两个视图模型,每个级别一个)
- 右侧是显示从右侧所选树视图项加载的数据的详细视图
我有两个问题:
- 我应该如何将右侧所选树视图项的Id传达给右侧列的详细信息视图中使用的视图模型
- 一旦Id在左侧部分已知,我将调用API来频繁刷新细节视图,最多每100-200毫秒刷新一次。INotifyPropertyChanged模式适合这种开发吗
我对问题1进行了一些搜索,我可以使用MVVM框架和/或中介模式。我只想让我的应用程序尽可能简单明了。谢谢你的帮助。
您只需将SelectedNode属性添加到视图模型中即可。选择树项目后,禁用当前SelectedNode上的更新,然后将SelectedNode属性设置为选定的树项目视图模型,然后在新节点上启动更新。细节侧仅绑定到主视图模型的SelectedNode属性/对象。
我会考虑一种消息传递模式(即pub/sub)。
签出EventAggregator或MessageBus。
这个想法是为您的视图模型广播消息以进行响应。
这与引发事件以供视图模型响应非常相似。
使用pub/sub模式提供了松散耦合。