我打算在我的幾個類之間使用數據綁定。換句話說,我沒有綁定模型類和UI之間的值,而是在不同的類之間綁定變量。如何在C#代碼中進行數據綁定?
我已經閱讀了有關C#中幾個地方的數據綁定,但其中大多數都指向Windows窗體和源對象之間的綁定。
我還是C#的新手。這是我如何理解我該怎麼做:
首先,對於我的源對象,說有一個類名稱DataObject
。源對象必須實現一個INotifyPropertyChange
接口,然後在屬性health
設置爲更改時觸發事件。我對此沒有任何問題。
現在,假設我有一個目標對象,稱爲CharacterClass
。 life
是CharacterClass
中的一個屬性,也是目標屬性,我想要綁定到源對象的health
屬性。
如何將代碼中的兩個屬性(單向和雙向)綁定在一起,只有普通的.NET框架?
的背景資料,我爲什麼問這個問題有點:
萬一你認爲這是一個重複的問題,它不是。我已經通過SE搜索。關於代碼中數據綁定的其他問題在WPF或XAML的上下文中,這不適用於我。我也閱讀了MSDN上的幾篇文章,似乎我可以創建一個Binding
對象,然後通過BindingOperations.SetBinding()
綁定源和目標。但是,Binding
類似乎是在System.Windows.Data.Binding
名稱空間下的WPF庫的一部分。儘管我使用的是C#,但我懷疑我會奢侈地訪問WPF庫,因爲我主要使用C#作爲Unity3D中的一種腳本語言。我相信我只能訪問vanilla .Net框架。但是,我對此不太確定,因爲我對C#仍然陌生。
其實,是的,你說得對數據UI結合之中。在我的情況下,我正在構建一個UI,但不是使用Windows窗體。而我所指的所有這些*目標對象都是我的UI類。所以我希望的是可以在我自己的非WinForm UI上實現的「自定義」排序數據綁定技術。 – Carven
@xEnOn:主要問題是綁定引擎與UI框架內部緊密結合。例如,WPF綁定使用依賴屬性,所以,如果你想使用它,你必須編寫你的UI類成爲'DependencyObject'後裔。我認爲,你應該寫自己的綁定引擎。 – Dennis
我明白了。謝謝!看起來我沒有運氣使用C#的現有數據綁定引擎。 :(猜猜我必須研究如何編寫我自己的綁定引擎。也許我會在這裏提出一個新問題,以瞭解數據綁定引擎如何在引擎蓋下工作,給我自己一個想法,即如何編寫數據綁定引擎。非常感謝Dennis。:) – Carven