Я хочу привязать динамический объект к элементу управления в приложении 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";
}
}
Для записи, если изменить значение элемента управления, он бы отразился на динамическое свойство, которое тоже ОК.
Для полноты, This post дал мне такой подход.