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