动态对象我想数据绑定动态对象在winform应用程序的控制。到目前为止,我得到了它有点工作,但它似乎数据绑定“第一次”,但后来当我改变属性值不承担绑定的控制效果,这是我无法克服的问题。双向数据绑定的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";
}
}
为了记录在案,如果我改变控制值,它会反映在动态特性,这是OK了。
为了完整性,This post给了我这种方法。