【发布时间】:2015-01-22 08:34:17
【问题描述】:
假设我想使用事件在视图模型中调用命令。这是不好的做法吗?如果是,为什么?
例子:
代码隐藏
void button1_Click(object sender, MouseEventArgs e)
{
this.ViewModel.OnButton1Click();
}
视图模型
void OnButton1Click()
{
// Do something
}
提前致谢。
【问题讨论】:
-
在视图模型中调用方法是可以的,但它应该调用与该视图模型相关的操作,而不是与 UI 相关的操作。为什么你的模型会关心按钮?
-
正如 Jeroen 所说,应该更改命名。 ViewModel 应该在 View 之前,并且方法应该有一个反映操作的名称。您可能还应该考虑将按钮绑定到 ICommand。
-
this.ViewModel表示问题。否则,这不是错误的 MVVM,但它可能表明您的设计存在问题。 UI 逻辑在您的代码隐藏中非常好。只需将您的业务逻辑排除在外。 -
@JeroenVannevel 我的事件影响视图模型中的数据。
标签: c# wpf mvvm viewmodel code-behind