我需要更改進程中的WPF標籤內容, 我試過但沒有實時更改內容。 我在哪裏做錯了?更新方法中的標籤內容
事件來電者:
private void connect_button_MouseDown(object sender, MouseButtonEventArgs e)
{
Mouse.OverrideCursor = Cursors.Wait;
labelStstusUpdate("Connecting.."); // Status changer
config = new Configuration();
bool status = config.connectViaUSB();
Mouse.OverrideCursor = null;
if (!status)
{
labelStstusUpdate("Disconnected");// Status changer
}
else
{
labelStstusUpdate("Connected");// Status changer
}
}
狀態轉換方法:
private void labelStstusUpdate(string message)
{
Dispatcher.BeginInvoke(DispatcherPriority.Background, (SendOrPostCallback)delegate
{
available_amount_label.Content = message;
}, null);
}
找到一個解決方法的代碼,我想你應該閱讀有關數據綁定和MVVM一些文章。這不是你應該處理數據的方式。 – Zwirbelbart
你爲什麼使用Dispatcher.BeginInvoke?您應該只在從非UI線程更新標籤時執行此操作。 –
我相信你的方法執行很長('connectViaUSB')並因此阻塞了WPF UI線程(「MouseDown」) - 你應該在一個單獨的線程中執行此操作,然後從該線程內調用labelStatusUpdate。 – Sebastian