【发布时间】:2019-06-06 13:54:35
【问题描述】:
使用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;
其中 name 每次文本框更改时都会更改,并且每次 name 变量更改时文本框都会更改。
我知道您可以在某种程度上使用System.ComponentModel.INotifyPropertyChanged,但我相信您仍然需要为要链接的每个变量手动编写getter 和setter。
【问题讨论】:
-
也许将事件处理程序添加到文本框构造函数?你基本上会做你上面所做的事情。我的猜测是制作一个扩展文本框的自定义文本框,添加一个数据源属性。
-
我认为这可能有效,第一句话就是。基本上添加一个处理程序并将变量作为参数传递,该参数将在文本框编辑时更改。 @thanatorr
-
WPF?窗体?数据绑定在两个平台上都有很好的记录。有很多教程和课程。虽然有很大的不同
-
@dymanoid 怎样让它更容易理解?