我希望将动态属性绑定到WinForms控件属性。
在下面的示例中,我将线程的IsAlive属性绑定到按钮的Enabled属性。
using System;
using System.Windows.Forms;
using System.Threading;
namespace ThreadTest
{
public partial class Form1 : Form
{
Thread thread;
public Form1()
{
InitializeComponent();
thread = new Thread(() =>
{
while (true)
Thread.Sleep(125);
}
);
button2.DataBindings.Add("Enabled", thread, "IsAlive");
}
private void buttonStart_Click(object sender, EventArgs e)
{
thread.Start();
}
private void buttonStop_Click(object sender, EventArgs e)
{
// ...
}
}
}
这仅在启动时有效。因为线程没有运行,所以“停止”按钮被禁用。当我点击“开始”按钮时,我期望将“停止”按钮更改为启用状态。但实际情况并非如此。
我是否遗漏了什么或者这不可能实现?