Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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 MVVM消息或事件或其他什么选项?_Wpf_Mvvm_Mvvm Light - Fatal编程技术网

Wpf MVVM消息或事件或其他什么选项?

Wpf MVVM消息或事件或其他什么选项?,wpf,mvvm,mvvm-light,Wpf,Mvvm,Mvvm Light,我在MainViewModel中有一个菜单,现在在选择一个特定的菜单项时,我想更新已经加载的视图的数据 i、 虽然MainViewModel中有该viewModel的实例,但当我试图通过该实例调用该方法并更改数据属性时,它不会在视图中显示更改。然而,当我使用viewModel视图上的按钮通过中继命令调用该方法时,也会发生相同的变化 现在,我需要从MainViewModel调用viewModel的中继命令,我想这会解决问题,但是如何做到呢?最简单的方法是什么。我需要使用消息传递吗?我尝试了MVVM

我在MainViewModel中有一个菜单,现在在选择一个特定的菜单项时,我想更新已经加载的视图的数据

i、 虽然MainViewModel中有该viewModel的实例,但当我试图通过该实例调用该方法并更改数据属性时,它不会在视图中显示更改。然而,当我使用viewModel视图上的按钮通过中继命令调用该方法时,也会发生相同的变化


现在,我需要从MainViewModel调用viewModel的中继命令,我想这会解决问题,但是如何做到呢?最简单的方法是什么。我需要使用消息传递吗?

我尝试了MVVM Light messenger类,它非常简单和优雅(保持ViewModels松散耦合)!!最重要的是,它是有效的

code: Send: Messenger.Default.Send(stringParameter, "key_anything"); Register: Messenger.Default.Register<string>(this, "key_anything", invokeFunction); private void invokeFunction(string stringParamter) { //code goes here! } 代码: 发送: Send(stringParameter,“key_anything”); 登记册: Messenger.Default.Register(这个“key\u anythis”,invokeFunction); 私有void invokeFunction(字符串StringParameter) { //代码在这里! }
我尝试了MVVM Light messenger类,它非常简单和优雅(保持ViewModels松散耦合)!!最重要的是,它是有效的

code: Send: Messenger.Default.Send(stringParameter, "key_anything"); Register: Messenger.Default.Register<string>(this, "key_anything", invokeFunction); private void invokeFunction(string stringParamter) { //code goes here! } 代码: 发送: Send(stringParameter,“key_anything”); 登记册: Messenger.Default.Register(这个“key\u anythis”,invokeFunction); 私有void invokeFunction(字符串StringParameter) { //代码在这里! }
这不应该是“保持ViewModels解耦”吗?@chibacity,对,我漏了一个词,将对其进行编辑,谢谢不应该是“保持ViewModels解耦”@chibacity,对,我漏了一个词,将对其进行编辑,谢谢