我是 Xamarin 的新手。我正在處理具有大量頁面和視圖模型的現有代碼庫。Xamarin 中的標準似乎是視圖模型中的每個公共屬性始終具有一個私有變數,并且始終在 setter 中呼叫 SetProperty。像這樣:
private string _myProperty;
public string MyProperty
{
get { return _myProperty; }
set { SetProperty(ref _myProperty, value); }
}
SetProperty 是做什么的?我需要對每一個屬性都執行此操作,還是僅對一些屬性執行此操作?如果我只使用帶有默認 getter 和 setter 的簡單屬性會發生什么?像這樣:
public string MyProperty { get; set; }
我的猜測是它與 XAML 檔案的系結有關,如果您希望在更改這些屬性時更新視圖,則它是必需的。但我在任何地方都沒有看到這個解釋。
uj5u.com熱心網友回復:
你不必使用這個。但是這種機制,INotifyPropertyChanged是驅動 Xamarin Forms(和其他 Microsoft UI 堆疊)使用的資料系結機制的原因。 SetProperty基本上會引發一個事件,通知 UI 某個屬性已更改,如果 UI 正在顯示該屬性,則它需要重繪 。
請注意,這
public string MyProperty;
不是C # 屬性。這只是一個field. Aproperty需要 aget和/或set。資料系結僅適用于公共屬性。
谷歌INotifyPropertyChanged有很多關于這個介面如何作業以及如何最好地實作它的大量文章。
存在一個很棒的 nuget 包,Fody PropertyChanged,它將自動化使用 INPC 所涉及的大部分樣板代碼。它適用于 Xamarin Forms。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/526270.html
標籤:xamarin特性吸气剂
