在事件回调后更改 wpf 元素



我正在读取通过串行端口连接的秤上的重量。当权重发生变化时,秤将返回一个事件。此事件运行良好,但我无法使用新权重更改事件处理程序中 WPF 元素的值(尝试了标签和文本框(。

事件处理程序位于正确的窗口类内。

当我调用消息框来显示重量时,一切都很好。

谁能向我解释如何在事件回调后更改 wpf 元素。这是我的回调函数。

public void OnWeightUpdate(string weight) {
if(String.IsNullOrEmpty(weight)) {
MessageBox.Show("Empty weight string, possible bad connection with scale");
}
else {
MessageBox.Show(weight);
LblScaleAmount.Content = weight;
}
}

由于您从串行端口接收权重信息 - 您的回调很有可能在后台(非 UI 线程(上运行。无法从后台线程更新界面控件,因此需要将更新操作调度回 UI 线程:

Dispatcher.Invoke(() => LblScaleAmount.Content = weight);

最新更新