2010-02-12 16 views
4

數據綁定我的代表,例如地址,客戶端MyDatabase的表類的列表。的WinForms有一個ViewModel

我的GUI往往是數據的網格和數據輸入形式。這對單表數據輸入正常工作,但我現在有一個表單,具有客戶端信息和他們的地址。

我想用視圖模型相結合的地址和客戶端類和分配是一個BindingSource的,我的控件綁定到的。

我將如何綁定控件的屬性名稱?這會工作...

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

有一個ViewModel甚至有可能用於Winforms數據綁定?

回答

2

我創建一個視圖模型,然後創造了VS.一個DataSource然後我將viewmodel中的類的屬性拖到窗體中,並創建了我需要的控件。然後我調用我的viewmodel中的每個類的Save方法。

1

如果您使用的是VS設計師可以設置使用,在控制的數據綁定屬性結合起來 - 讓我們用VS生成樣板代碼,如果沒有綁定在設計師的東西,並檢查了生成的代碼。只需將一個BindingSource添加到您的表單並綁定到該屬性即可。然後當你有ViewModel的時候設置BindingSource.DataSource。

綁定到WinForms中的ViewModel的關鍵是實現接口INotifyPropertyChange,並在模型的所有屬性的setter中觸發PropertyChanged事件,將屬性的名稱作爲字符串傳入。任何WinForms控件都會捕獲此事件,如果您更改模型上的任何內容,這些控件將進行更新。這也意味着如果您有一個主持人並且在那裏執行任何計算/操作,您可以在主持人身上捕捉該事件。

相關問題