从 WPF 中的 ViewModel 异步 UI 更新

asynchronous UI update from ViewModel in WPF

我在这里看到了一个原始问题。 asynchronous UI update from ViewModel in WPF 虽然有一个被接受的答案,但原作者提出了一个我被难倒的问题。这一切都归结为将 Dispatcher 对象合并到绑定的 View 模型中的正确方法。

所以...我有一个视图,其中的网格绑定到视图模型 "Cars" 中的可观察集合。在视图模型的构造函数中,我使用 QueryAsync 调用 SharePoint。在成功方法中,我应该调用 Dispatcher。可能的是 >> Dispatcher.CurrentDispatcher.Invoke(),App.Current.Dispatcher.Invoke

None 这些似乎对我有用。我不知道是否应该将 Dispatcher 发送到 View Model。 (我不知道该怎么做)或在视图模型中创建一个调度程序并为其分配一些东西。

我真的不认为我这样做是对的。你会认为那里会有一些不错的示例代码。

您可以在应用程序 class 中添加对 UI 根视觉(您的主要 window/user 控件)的调度程序的 public 引用(App.xaml.cs), 并可能在实例化视图模型时注入它。

我建议你使用像 MVVM Ligh toolkit, that already solves the problem in a very elegant way, here an example: Simple example of DispatcherHelper

这样的 MVVM 框架