【发布时间】:2013-12-12 04:05:59
【问题描述】:
我想将动态对象数据绑定到 winform 应用程序中的控件。到目前为止,我得到了一些工作,它似乎是“第一次”数据绑定,但是当我更改属性值时,它不会对绑定的控件生效,这就是我可以解决的问题不要克服。
这是代码,如果你创建一个带有文本框和按钮的新 winform 应用程序,你可以对其进行测试:
public partial class Form1 : Form
{
public dynamic ViewData { get; set; }
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.ViewData = new ExpandoObject();
this.ViewData.Test = "test1";
var bind = new Binding("Text", this.ViewData, null);
bind.Format += (o, c) => c.Value = this.ViewData.Test;
bind.Parse += (o, c) => this.ViewData.Test = c.Value;
textBox1.DataBindings.Add(bind);
this.ViewData.Test = "test2";
}
private void button1_Click(object sender, EventArgs e)
{
this.ViewData.Test = "test3";
}
}
作为记录,如果我更改控件值,它会反映在动态属性上,这也可以。
为了完整起见,This post 给了我这种方法。
【问题讨论】:
标签: c# winforms data-binding inotifypropertychanged expandoobject