簡體   English   中英

使用ViewModel Winforms數據綁定

[英]Winforms Databinding with a ViewModel

我有一個表示mydatabase表的類列表,例如Address,Client。

我的GUI往往是數據網格和數據輸入表單。 這適用於單表數據輸入,但我現在有一個表單,其中包含客戶端信息及其地址。

我正在考慮使用ViewModel組合Address和Client類,並將其分配給bindingsource並將我的控件綁定到該類。

如何將控件綁定到屬性名稱? 這會有用......

if (txtLine1.DataBindings.Count == 0)
                txtLine1.DataBindings.Add("Text", bindingSource, "Address.Line1", false, DataSourceUpdateMode.OnPropertyChanged);

Winform數據綁定甚至可以使用ViewModel嗎?

我創建了一個ViewModel,然后在VS中創建了一個DataSource。 然后我將viewmodel中類的屬性拖到窗體中,這就創建了我需要的控件。 然后,我在viewmodel中為每個類調用Save方法。

如果你正在使用VS設計器,你可以使用控件的數據綁定屬性設置綁定 - 讓樣板代碼由VS生成,如果沒有綁定設計器中的東西並檢查生成的代碼。 只需將BindingSource添加到表單並綁定到該表單上的屬性即可。 然后在擁有ViewModel時設置BindingSource.DataSource。

在WinForms中綁定到ViewModel的關鍵是實現接口INotifyPropertyChange並在模型上所有屬性的setter中觸發PropertyChanged事件,並將該屬性的名稱作為字符串傳遞。 此事件由任何WinForms控件捕獲,如果您更改模型上的任何內容,它將更新。 這也意味着您可以在演示者上捕獲事件(如果有)並在那里執行任何計算/操作。

暫無
暫無

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

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