1
为了在使用模型 - 视图 - 视图模型模式(又名表示模型)时将代码保留在视图之外,我可以将命令作为视图模型中的属性公开,并绑定到视图中的这些命令。通过这种方式,我的视图可以完全写入XAML并且没有代码隐藏,除了强制构造函数调用InitializeComponent()
。MVVM和事件
这适用于实现ICommandSource
的控件。但是如果我想在文本框的文本更改时执行某些操作呢?编译器拒绝XAML,我设置了一个不在代码隐藏文件中的处理程序附加到事件。
我可以写一些事件处理程序,只需运行在视图模型的命令(或方法),就像这样:
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
((EditPersonViewModel) DataContext).ChangeBioCommand.Execute(e.Changes);
}
这工作,但我不喜欢这样的事实我必须写这么丑样板代码遍布我的观点。有更好的解决方案吗?
正是我在找的,谢谢。 – 2009-12-29 17:17:46