两路绑定变量以形成控件

时间:2019-01-11 15:58:33

标签: c# .net winforms

对于winforms,您可以使用listbox1.datasource = new List<string>(...)将列表框的数据绑定到项目列表的方式相同,如何将文本框绑定到变量值呢?

我知道这样做有几种不直观的方法。

例如

class form : Form {

    string name;

    //change variable every time the textbox changes

    private void name_textbox_change(object sender, EventArgs e)
    {
        name=name_textbox.text();
    }

    //change variable on closing

    private void form_closing(object sender, EventArgs e)
    {
        name=name_textbox.text();
    }



}

,但是在所有这些情况下,您都必须为EACH变量显式地将值分配给变量。 理想情况下,我可以做类似的事情。

name_textbox.datasource = name;

每次文本框更改时名称都会更改,而每次name变量更改时文本框也会更改。

我知道您可以在某种程度上使用System.ComponentModel.INotifyPropertyChanged,但我相信您仍然必须为要链接的每个变量手动编写一个getter和setter。

1 个答案:

答案 0 :(得分:0)

尝试数据绑定

textBox.DataBindings.Add("Text", this, "PropertyToBind");

请注意,“ PropertyToBind”是在类中声明的属性名称,例如表单