Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf viewmodels和频繁更新之间的通信_Wpf_Mvvm_Viewmodel_Updates_Frequency - Fatal编程技术网

Wpf viewmodels和频繁更新之间的通信

Wpf viewmodels和频繁更新之间的通信,wpf,mvvm,viewmodel,updates,frequency,Wpf,Mvvm,Viewmodel,Updates,Frequency,我用MVVM应用程序启动了一个新的WPF。 主视图是一个包含两列的轴网: 在左侧,树视图只有两个级别(和两个viewmodels,每个级别一个) 右侧是一个详细视图,显示从右侧所选树项目加载的数据 我有两个问题: 我应该如何将右侧选定的treeviewitem中的Id传递给右侧列的详细视图中使用的视图模型 一旦在左侧部分中知道Id,我将调用API频繁刷新详细视图,最多每100-200毫秒刷新一次。INotifyPropertyChanged模式是否适合这种开发 我对问题1做了一些搜索,我可以

我用MVVM应用程序启动了一个新的WPF。 主视图是一个包含两列的轴网:

  • 在左侧,树视图只有两个级别(和两个viewmodels,每个级别一个)
  • 右侧是一个详细视图,显示从右侧所选树项目加载的数据
我有两个问题:

  • 我应该如何将右侧选定的treeviewitem中的Id传递给右侧列的详细视图中使用的视图模型
  • 一旦在左侧部分中知道Id,我将调用API频繁刷新详细视图,最多每100-200毫秒刷新一次。INotifyPropertyChanged模式是否适合这种开发
  • 我对问题1做了一些搜索,我可以使用MVVM框架和/或使用中介模式。 我只想让我的应用程序尽可能的轻巧和简单。
    谢谢您的帮助。

    您可以将SelectedNode属性添加到视图模型中。选择树项目后,禁用当前SelectedNode上的更新,然后将SelectedNode属性设置为selected tree items viewmodel,然后在新节点上启动更新。细节侧仅绑定到主视图模型的SelectedNode属性/对象。

    < P>我会考虑消息模式(即PUB/SUB)。

    结帐或付款

    其思想是广播消息,供视图模型响应

    这非常类似于引发事件以供视图模型响应


    使用发布/订阅模式提供松散耦合。

    谢谢您的回答。我添加了一个SelectedNode,但它位于TreeView中的视图模型中(通过HierarchycalDataTemplate的级别2)。我需要此视图模型中的SelectedNode值,以便主视图模型(或新视图模型)可以访问详细视图。感谢您的回答,我将查看提供的链接。