1
我正在使用wpf及其C語言!何時需要使用自動屬性以及何時使用propertychanged事件?
我有這個在我的Animal.cs CLAS
private string _animalName;
public string AnimalName
{
get { return _animalName; }
set
{
if(_animalName!= value)
{
_animalName= value;
this.NotifyPropertyChanged("AnimalName");
}
}
}
我也可以這樣寫:
公共字符串AnimalName {獲取;集;}
有綁定和驗證無差異。當我交換代碼時,所有東西都像以前一樣工作。
這是由於我只創建新的動物,但我不允許更新我的應用程序中的動物名稱這一事實?
所以我需要調用propertyChanged(「AnimalName」);只有當我想改變它的屬性值?
我是C#初學者;)
嗯,我有一個二傳手,因爲我第一次輸入一個動物的名字,當我創建動物類。但是在這個過程之後,我不必再改變這個地產了! 我只是切換屬性,它沒有NotifyPropertyChanged工作,雖然我用你說的一個setter,那麼是什麼? – Honey 2010-05-29 10:24:05
如果一旦創建了一個動物類的實例,動物的名字就不會改變,那麼可以讓動物構造函數爲該名稱取一個參數。您在構造函數中設置名稱,並通過移除setter將name屬性設爲只讀。它將工作,不管NotifyPropertyChanged。但是,假設你擁有一個可以改變的動物所有者的財產。綁定並顯示所有者信息仍然可以在沒有NotifyProperty的情況下運行。但是,如果所有者發生更改,則不會顯示NotifyPropertyChanged中最新的信息。 – 2010-05-29 10:39:06
你說的是Owner.cs和Animal.cs關係嗎? 當我讀到你說的話時,我不明白什麼,同時我也認爲在我身邊發生了什麼。 我使用自動道具只與get; set和一切按預期工作。我只是不希望在幾個月後有一些缺點...... – Honey 2010-05-29 10:55:14