c# - 双向绑定变量到表单控件
问题描述
使用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。
解决方案
尝试数据绑定
textBox.DataBindings.Add("Text", this, "PropertyToBind");
请注意,“PropertyToBind”是在您的类中声明的属性的名称,例如您的表单
推荐阅读
- java - reverse 方法应该反向打印出 lst 。它改为打印一个空的arrayList。为什么会发生这种情况,我该如何解决?
- c# - 将用户添加到 Slack 频道
- flutter - Flutter:如何在 Firestore 中获取我的数组数据?
- python - 烧瓶应用程序 - 100% 的内存和 CPU 消耗
- java - Java异常错误导致代码突然停止
- android - 从 YUV 4:2:0 数据创建 VideoFrame
- tensorflow - get_weights is slow with every iteration
- php - Get td contain table from library simplehtmldom
- python - Training not working. "Skipping training since max_steps has already saved"
- azure-api-management - 在 api 配置的响应表示中禁用生成的示例属性