2009-12-29 47 views
1

为了在使用模型 - 视图 - 视图模型模式(又名表示模型)时将代码保留在视图之外,我可以将命令作为视图模型中的属性公开,并绑定到视图中的这些命令。通过这种方式,我的视图可以完全写入XAML并且没有代码隐藏,除了强制构造函数调用InitializeComponent()MVVM和事件

这适用于实现ICommandSource的控件。但是如果我想在文本框的文本更改时执行某些操作呢?编译器拒绝XAML,我设置了一个不在代码隐藏文件中的处理程序附加到事件。

我可以写一些事件处理程序,只需运行在视图模型的命令(或方法),就像这样:

private void TextBox_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    ((EditPersonViewModel) DataContext).ChangeBioCommand.Execute(e.Changes); 
} 

这工作,但我不喜欢这样的事实我必须写这么丑样板代码遍布我的观点。有更好的解决方案吗?

回答

2

您可以使用“附加命令行为”模式。 Marlon Grech有很好的执行here

+0

正是我在找的,谢谢。 – 2009-12-29 17:17:46