首页 > 解决方案 > 双向绑定变量到表单控件

问题描述

使用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();
    }



}

但在所有这些情况下,您必须为每个变量显式分配值给变量。理想情况下,我将能够做类似的事情。

name_textbox.datasource = name;

每次文本框更改时名称都会更改,并且每次名称变量更改时文本框都会更改。

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

标签: c#.netwinforms

解决方案


尝试数据绑定

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

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


推荐阅读