2

我正在开发一个项目,我正在使用 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
        });

上面的代码是我正在做的事情的要点。根据我在这里这里收集的信息,我了解到从任务线程更新我的视图模型上的属性不是问题——我对此没有任何问题。

我的问题是 - 在任务完成步骤 2 之前关闭包含绑定控件的窗口会发生什么?当我关闭窗口时,我没有收到任何错误,并且在步骤 3 上设置断点不会受到影响。

4

1 回答 1

1

在 View 被释放后更新 ViewModel 没有任何问题。WPF 将破坏绑定,并且视图将不再连接到您的 ViewModel。PropertyChanged 事件将被忽视。这就是 MVVM 的美妙之处:当您在 VM 层工作时,您不必担心视图在做什么。

于 2013-10-16T13:10:23.490 回答