我正在通过串口连接的秤上读取重量。当重量改变时,比例返回一个事件。这个事件工作得很好,但是我不能用新的权重更改事件处理程序中的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;
}
}
答案 0 :(得分:0)
由于您从串口收到重量信息 - 您的回调很有可能在后台运行(非UI线程)。您无法从后台线程更新接口控件,因此您需要将更新操作分派回UI线程:
Dispatcher.Invoke(() => LblScaleAmount.Content = weight);