2011-10-23 165 views
9

我想將一些Winform對象綁定到自定義類,更具體地說我已將自定義類的實例添加到代碼中的窗體中。 C#,.NET 2010 Express。Winforms數據綁定到自定義類

例如,這裏是類的片段,以及UserInfoForm現在

public class UserInfo 
{ 
    [XmlAttribute] 
    public string name = "DefaultName"; 

    [XmlAttribute] 
    public bool showTutorial = true; 

    [XmlAttribute] 
    public enum onCloseEvent = LastWindowClosedEvent.Exit; 
} 

public enum LastWindowClosedEvent 
{ 
    MainMenu, 
    Exit, 
    RunInBackground 
} 


public partial class Form1 : Form 
{ 
    UserInfo userToBind = new UserInfo(); 

    TextBox TB_userName = new TextBox(); 
    CheckBox CB_showTutorial = new CheckBox(); 
    ComboBox DDB_onCloseEvent = new ComboBox(); 

    public Form1() 
    { 
     InitializeComponent(); 
    } 
} 

,我想這些表單控件的值綁定到userToBind各自的價值,但有沒有運氣。我可以找到的所有教程都是過時的(2002),或者將控件綁定到數據集或其他類型的數據庫。

我明顯地忽略了一些東西,但我還沒有想出什麼。

非常感謝您分享的任何信息。

更多信息:UserInfo被設計爲XML友好,因此可以保存爲用戶配置文件。 UserInfo將包含其他自定義XML類,全部嵌套在UserInfo下,許多控件只需要訪問這些子類。

回答

16

您可以使用控件(文本框,複選框...)的DataBindings屬性將綁定添加到特定的控件。例如:

public Form1() 
{ 
    InitializeComponent(); 
    TB_userName.DataBindings.Add("Text", userToBind, "name"); 
} 

此外,IIRC,數據綁定只適用於properties,所以你首先需要相應地修改UserInfo類。此外,如果要在用代碼修改對象時自動更新UI,則必須在自定義類中實現INotifyPropertyChanged

+3

我還發現這些屬性需要公開,內部不適合我。 – RichieACC