我有這些:綁定文本框屬性類
- 上有一個標籤
- 類 「業務」
- 類 「TimerHelper」
I A型我喜歡當我更新屬性MyTime
,更新文本框
我的「業務」類看起來像這樣:
public class MyBusinessClass : INotifyPropertyChanged
{
public void MakeSound(object sender, ElapsedEventArgs e)
{
// I change MyTime here
}
public event PropertyChangedEventHandler PropertyChanged;
private int myTime;
public int MyTime
{
get { return myTime; }
set
{
myTime= value;
InvokePropertyChanged(new PropertyChangedEventArgs("MyTime"));
}
}
public void InvokePropertyChanged(PropertyChangedEventArgs e)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, e);
}
}
的 「TimerHelper」 是這樣的:
public class TimerHelper
{
private Timer _timer;
public void Run()
{
_timer = new Timer(1000);
_timer.Enabled = true;
_timer.Elapsed += new ElapsedEventHandler(MyBusinessClass.MakeSound);
}
}
在形式,我想這樣的:
myTextBox.DataBindings.Add("Text", new MyBusinessClass(), "MyTime");
但我得到的方法中形成異常 「InvokePropertyChanged」 我想試試這個:
Invoke((MethodInvoker)delegate { myTextBox.Text = new MyBusinessClass().MyTime; });
,但文本框永遠不會更新
我實在無法理解公務艙和時間助手之間的關係。你能告訴情景嗎? – daryal 2013-02-12 12:46:40
這是一種節拍器。我開始節奏,x秒,調用MyBusinessClass.MakeSound()方法,並且此方法將更新字段'MyTime'。當字段更新時,我想更新表格的文本框 – 2013-02-12 12:53:01
你在哪裏調用Invoke((MethodInvoker)delegate {myTextBox.Text = new MyBusinessClass()。MyTime;});? – Paparazzi 2013-02-12 12:54:58