我正在使用MVVM模式构建一个WPF应用程序(两者都是我的新技术).我将用户控件用于不包含业务逻辑的简单可重用功能,以及用于构建应用程序逻辑的MVVM模式.假设一个视图包含触发事件的用户控件,我想为该事件添加一个事件处理程序.该事件处理程序应该位于视图的视图模型中,因为它包含业务逻辑.问题是 - 视图和视图模型仅通过绑定连接; 如何使用绑定连接事件处理程序?甚至可能(我怀疑不是)?如果不是 - 我应该如何处理视图模型中控件的事件?也许我应该使用命令或INotifyPropertyChanged?
Tho*_*son 14
一般来说,如果您在用户控件中使用事件,那么避免代码隐藏在代码中是一种很好的MVVM实践.所以尽可能使用INotifyPropertyChanged和ICommand.
话虽如此,根据您的项目以及您的实用程度,有时候使用控件的代码更有意义.
我有几次使用过这样的东西:
private void textBox1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
MyViewModel vm = this.DataContext as MyViewModel;
vm.MethodToExecute(...);
}
Run Code Online (Sandbox Code Playgroud)
您还可以考虑附加命令行为,有关此内容的更多信息以及在此处查找的实现:
| 归档时间: |
|
| 查看次数: |
20136 次 |
| 最近记录: |