簡體   English   中英

INotifyPropertyChanged與雙向綁定

[英]INotifyPropertyChanged vs Two way binding

我是C#的新手,我想知道為什么當我們使用TwoWay綁定時必須實現INotifyPropertyChanged接口嗎? 而且對於OneWay而言?

謝謝

簡而言之,為了支持OneWay / TwoWay綁定,基礎數據必須實現INotifyPropertyChanged

然后,OneWay / TwoWay綁定只是選擇綁定方向,您可以在此處找到更多信息:

各種WPF綁定模式

實現INotifyPropertyChanged只是為類(實現類除外)提供了對屬性更改做出反應的可能性。

如果未實現該接口,則這是不可能的,因為如果類實例(例如AB上設置了屬性,則第三類實例C無法跟蹤該信息。 現在設置該屬性僅是AB 但是,如果C知道B確實實現了INotifyPropertyChanged ,則它可以簡單地向事件PropertyChanged (它是接口的一部分)添加一個事件處理程序,並對它做出反應-仍然希望B能夠按預期拋出該事件。

綁定需要該信息來更新模型(數據)或視圖,具體取決於更改發生的位置。 因此,基本上,他們是C偵聽其他對象( AB )的更改。

INotifyPropertyChanged與名稱一樣,是用來通知您的客戶端您的屬性已更改,請參閱MSDN。

屬性更改時,將需要它來更新UI。


OneWay (源到目標):Propertychange將導致UI更新,而UI操作將不會導致propertychange。 *

TwoWay (雙向):屬性和UI完全綁定,它們中的任何更改都會影響另一個。

在這種情況下,只要為屬性實現INotifyPropertyChanged,綁定就起作用。

如果不這樣做,即使您使用Twoway,也不會有任何改變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM