【发布时间】:2022-02-04 10:17:38
【问题描述】:
我正在用 C# 编写一些代码,其中 Observable 集合应该获取字符数组中字符的值,并根据初始化后的值显示晶圆的不存在或存在,这需要大约 30 秒才能完成。但是,模型只是显示空白,没有涉及数据。我尝试使用 {get; 将数组公开set;} 以及为初始化引入时间延迟,但它仍然显示空白。我想问一下如何让 Observable Collections 不断更新模型,而不仅仅是静态的。我尝试更改 XAML 文件中的 UpdateSourceTrigger,但也没有任何更改。如果我能得到任何指示以向我指明正确的方向,我将不胜感激。
public class LPMModel : NotifyPropertyChanged
{
#region Fields
private static int nextIndex, nextIndexL = 0;
private int index;
private int indexL;
private bool status;
private bool enable;
public char[] WafPreSta;
public char[] wmapLPM1 { get; set; }
private readonly ObservableCollection<WaferModel> sloatWaferCollection;
#endregion Fields
public int Index { get => indexL; set => indexL = value; }
public bool Status { get => status; set => status = value; }
public bool Enable { get => enable; set => enable = value; }
public ObservableCollection<WaferModel> SlotWaferCollection => sloatWaferCollection;
public override string ToString()
{
return string.Format("LPM #{0}", Index);
}
public LPMModel()
{
Thread.Sleep(30000);
indexL = ++nextIndexL;
index = nextIndex++;
sloatWaferCollection = new ObservableCollection<WaferModel>();
while (wmapLPM1 != null)
{
for (int i = 25; i > 0; i--)
{
switch (wmapLPM1[i-1])
{
case '1':
status = true;
break;
case '0':
status = false;
break;
default:
break;
}
//status = true;
sloatWaferCollection.Add(new WaferModel(status, i, this));
}
}
}
}
}
【问题讨论】:
-
在哪里初始化 wmapLPM1 并将数据加载到其中?您是否检查过 wmapLPM1 是否已加载?
-
wmapLPM1 被初始化并加载到另一个 C# 程序中,该程序链接到此代码所链接到的解决方案文件,是的,wmapLPM1 加载了一个示例数组,如下所示:(0001010101010101010100001)
标签: c# collections observable global