2010-11-14 114 views
0

爲什麼大多數MVVM數據綁定屬性示例檢查當前值是否等於先前的值。MVVM屬性數據綁定

private string name; 
public string Name 
{ 
    set 
    { 
    if(this.name != value) <- why is this check needed. 
    {...} 
    } 
} 

謝謝!

回答

2

在MVVM中,屬性設置器在屬性更改後觸發UI更新。添加此檢查可防止UI不必要地刷新(並可能閃爍)。

+0

這是你自己的代碼調用setter兩次或與綁定和視圖有關嗎? – dnndeveloper 2010-11-14 18:42:06

+0

我從來沒有注意到綁定觸發了太多的更新,我會說這個問題發生的大部分時間都是因爲你自己的代碼。這個「實際值改變」的支票並不是什麼新東西,早在德爾菲時代,這也是常見的做法...... – 2010-11-15 08:57:25

0

在Binding「TwoWay」的情況下,當更改XAML中的值時,ViewModel端的綁定屬性中的值不得重新發送相同的值。另一方面,如果值(ViewModel綁定端)未更改,則不需要將「RaiseChangedProperty」事件引發至View。