[英]INotifyPropertyChanged vs Two way binding
我是C#的新手,我想知道為什么當我們使用TwoWay綁定時必須實現INotifyPropertyChanged接口嗎? 而且對於OneWay而言?
謝謝
簡而言之,為了支持OneWay / TwoWay綁定,基礎數據必須實現INotifyPropertyChanged 。
然后,OneWay / TwoWay綁定只是選擇綁定方向,您可以在此處找到更多信息:
實現INotifyPropertyChanged
只是為類(實現類除外)提供了對屬性更改做出反應的可能性。
如果未實現該接口,則這是不可能的,因為如果類實例(例如A
在B
上設置了屬性,則第三類實例C
無法跟蹤該信息。 現在設置該屬性僅是A
和B
。 但是,如果C
知道B
確實實現了INotifyPropertyChanged
,則它可以簡單地向事件PropertyChanged
(它是接口的一部分)添加一個事件處理程序,並對它做出反應-仍然希望B
能夠按預期拋出該事件。
綁定需要該信息來更新模型(數據)或視圖,具體取決於更改發生的位置。 因此,基本上,他們是C
偵聽其他對象( A
和B
)的更改。
INotifyPropertyChanged與名稱一樣,是用來通知您的客戶端您的屬性已更改,請參閱MSDN。
屬性更改時,將需要它來更新UI。
OneWay (源到目標):Propertychange將導致UI更新,而UI操作將不會導致propertychange。 *
TwoWay (雙向):屬性和UI完全綁定,它們中的任何更改都會影響另一個。
在這種情況下,只要為屬性實現INotifyPropertyChanged,綁定就起作用。
如果不這樣做,即使您使用Twoway,也不會有任何改變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.