如何检查是否从其他线程检查了我的UI中的复选框?因为我无法访问其他线程的UI元素......
谢谢:)。
答案 0 :(得分:1)
将复选框数据绑定到视图模型中的属性,这可能是此逻辑所属的开头。
答案 1 :(得分:1)
一种可能的解决方案是使用MVVM模式,就像他的答案中提到的@PMV一样,但它不是唯一的。
在这种情况下,最常见的解决方案是使用与您尝试访问的元素相关联的Dispatcher
对象。
如果您的目标是针对.NET 4.5或更高版本,则可以使用Invoke
方法的this overload:
var isChecked = targetCheckBox.Dispatcher.Invoke(() => targetCheckBox.IsChecked));
在旧版本的框架中,您必须回到this overload:
var isChecked = (bool?)targetCheckBox.Dispatcher
.Invoke(new Func<bool?>(() => targetCheckBox.IsChecked));
答案 2 :(得分:1)
像这样处理Checked
的{{1}}事件:
CheckBox