当我修改变量时,UI 不会更新。更新变量的函数是由另一个线程中触发的事件触发的。
我尝试使用调度程序返回主线程,但它不起作用...自上一个版本以来,该产品在 8.2.2 中使用带有属性的变量。你能告诉我如何继续这个版本吗?泰;)
[ObservableProperty]
private SolidColorBrush ellipseFill
private void changeColor(object? sender, FaultStateChangedEventArgs e)
{
if (Application.Current == null) { return; }
Application.Current.Dispatcher.BeginInvoke(new Action(() =>
{
ellipseFill = e.NewFaultState ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Gray);
Debug.WriteLine(e.NewFaultState ? "true" : "false");
}), DispatcherPriority.Normal);
}
我尝试了标准版本,但没有将 ObservableObject 添加到我的类中。我正在手动实现 INotifyPropertyChanged 或返回到 MVVM CommunityToolkit 的 8.2.0 版本,代码是相同的,只是我以旧方式声明变量并且它可以工作...
老方法:
private string quantity = "";
public string Quantity
{
get => quantity;
set => SetProperty(ref quantity, value);
}
不要更新字段
ellipseFill
,而是更新由 CommunityToolkit.Mvvm生成的属性
EllipseFill
。