2009-12-29 103 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