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