Dan*_*iel 4 c# wpf events mvvm icommand
各位大家好,并提前感谢您的时间.
我正在使用WPF学习MVVM,用于我正在编写的小型Biz App.我已经阅读了很多关于MVVM模式的文章,并发现其中一个关键领域是尽可能地将ViewModel与View分离.
我想在我的应用程序中打开一个新窗口,但我不确定是应该使用ICommand从ViewModel打开它还是使用标准事件直接从视图打开它.我工作的人建议我应该使用命令,但后来我认为这意味着在我的ViewModel中引用了一个View,根据我的理解,这正是MVVM模式关注的避免.
我的理解是,如果一个窗口仅用于导航目的,打开新窗口的过程对模型没有影响,那么我应该使用标准事件将所有这些保留在视图上.
我知道在sw开发过程中,所有东西都"依赖",但我猜我的问题是有"正确"/标准的方法吗?
最好的问候,丹尼尔
是的,VM应该使用Views可以订阅的事件与Views进行通信...
在VM中:
public event EventHandler<NotificationEventArgs<string>> DisplayOptionsNotice;
Run Code Online (Sandbox Code Playgroud)
在视图中:
private readonly MainViewModel mvm;
...
mvm = DataContext as MainViewModel;
mvm.DisplayOptionsNotice += DisplayOptionsWindow;
...
private void DisplayOptionsWindow(object sender, NotificationEventArgs<string> e)
{
...
optionsWindow = new OptionsWindow { Owner = this };
optionsWindow.ShowDialog();
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2230 次 |
| 最近记录: |