[英]Create event for variable in WPF
我有一個帶有開始按鈕的WPF
表單。 單擊它時,我正在調用另一個名為ClassA
類的start
函數。
這是ClassA
的代碼:
private DispatcherTimer m_dispatcherTimer = new DispatcherTimer();
private int m_timerCounter;
public bool IsRunning { get; private set; }
private void DispatcherTimer_Tick(object sender, EventArgs e)
{
m_timerCounter ++;
if (m_timerCounter == MaxCounter)
Stop();
}
public void Start()
{
IsRunning = true;
m_timerCounter = 0;
m_dispatcherTimer.Start();
}
public void Stop()
{
m_dispatcherTimer.Stop();
m_timerCounter = 0;
IsRunning = false;
}
這是我的追求:
每當ClassA
的屬性IsRunning
發生更改時,我想在表單的代碼后面彈出一個消息框。
我可以使用while
循環監視它並將其放入線程中,但是我想避免它。
您創建這樣的事件:
//globals in ClassA
//create the handler delegate
public delegate void RunningChanged(bool isRunning);
//create the event
public event RunningChanged OnRunningChanged;
調用它:
//method in ClassA
private void SetRunning(bool running)
{
IsRunning = running;
var handler = OnRunningChanged;
if (handler != null)
{
handler(running);
}
}
因此,在后面的表單代碼中,您可以執行以下操作:
var instance = new ClassA();
instance.OnRunningChanged += OnRunningChangedHandler;
private void OnRunningChangedHandler(bool isRunning)
{
//do whatever you want to do when th running property changes
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.