我在这里看到了一个原始问题。 asynchronous UI update from ViewModel in WPF虽然有一个公认的答案,但原作者却在问我一个难以理解的问题。这一切都归结为将Dispatcher对象合并到绑定的View模型中的正确方法。
所以...我有一个视图,网格绑定到View Model" Cars"中的可观察集合。在视图模型的构造函数中,我使用QueryAsync调用SharePoint。在成功方法中,我应该调用Dispatcher。可能的是>> Dispatcher.CurrentDispatcher.Invoke(),App.Current.Dispatcher.Invoke
这些似乎都不适合我。我不知道我是否应该将Dispatcher发送到View Model。 (我不知道该怎么做)或在视图模型中创建一个Dispatcher并为其分配一些东西。
我甚至不认为我这样做是正确的。你会认为会有一些不错的示例代码。
答案 0 :(得分:1)
您可以在App类(App.xaml.cs)中向UI Root Visual(您的主窗口/用户控件)的Dispatcher添加公共引用,并可能在实例化视图模型时将其注入。
我建议您使用像MVVM Ligh toolkit这样的MVVM框架,它已经以非常优雅的方式解决了这个问题,例如:Simple example of DispatcherHelper