我正在开发一个项目,我正在使用Task对象从后台线程更新绑定属性(MVVM):
Task.Factory.StartNew(() =>
{
// 1. Update bound control to indicate that data is being loaded
// 2. Perform long running call
// 3. Display the loaded data in the bound control
});
上面的代码是我正在做的事情的要点。根据我收集的信息here和here我了解从任务线程更新我的View模型的属性不是问题 - 我对此没有任何问题。
我的问题是 - 在任务完成第2步之前,当包含绑定控件的窗口关闭时会发生什么?我没有收到任何错误,并且当我关闭窗口时,在步骤3中设置断点不会被击中。
答案 0 :(得分:1)
在处置View后更新ViewModel没有任何问题。绑定将被WPF破坏,视图将不再与ViewModel连接。 PropertyChanged事件将被忽视。这就是MVVM的优点:当你在VM层工作时,你不必担心视图的作用。