2010-09-29 94 views
4

我是新來的c#,我正在尋找一種方法將我自己的對象的屬性綁定到常規窗體中的文本框的值(每次重置對象的屬性輸入值改變)。將對象綁定到文本框c#

我已閱讀了一些信息,似乎這隻能用於數據庫對象。你能否給我更多的信息。

+0

這是在winforms或asp.net?你是否希望它是活動綁定(所以一旦它在服務器上發生變化,它就會在表單上發生變化),或者你想要根據用戶請求加載值?你想要數據庫綁定還是其他什麼?你知道textbox.text是文本(字符串),而不是對象,對嗎? – jcolebrand 2010-09-29 22:14:35

+1

謝謝Drachenstern,Gaeraron給了我正在尋找的答案。 – Lucia 2010-09-29 22:25:00

回答

10

假設你的意思是Windows窗體的文本框, 說

textBox.DataBindings.Add("Text", obj, "SomeProperty"); 

每當你覺得它結合。綁定通常在事件處理程序中完成,如果當時可以獲取對象,並且不存在具有不同數據源的複雜邏輯。

請注意,這將只在一個方向工作(更改文本框將產生對象屬性更改)。要以其他方式同步,該對象必須實現INotifyPropertyChanged接口。

1

如果您想要在應用程序運行之間持久保存信息(例如,在關閉應用程序並在打開時重新顯示時保存它),使用Windows窗體設計器(我假設您正在編碼一個WinForms應用程序)將TextBox的值綁定到應用程序設置。 (This article on validation提供a screenshot類似於你想要的東西。)(編輯:下面是關於這個主題的特殊物品:Exploring Secrets of Persistent Application Settings這裏是一個snippet page,我放在一起討論約束力。)

這種綁定自動爲雙向,與@gaearon提到的約束不同。您只需確保在關閉應用程序之前(例如作爲Form.Closing事件的事件處理程序)保存設置(即Properties.Settings.Default.Save())。

如果您需要更多解釋,請發表評論。