首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF MVVM Threadsafe从ViewModel获取List<Object>的方法

WPF MVVM Threadsafe从ViewModel获取List<Object>的方法
EN

Stack Overflow用户
提问于 2009-08-05 00:33:24
回答 2查看 823关注 0票数 1

我试图从后台工作人员访问视图模型上的列表,但由于要跨线程而收到错误...

这是视图模型上的问题方法:(我在函数的第一行得到了异常(SMMainWindow window ...))

代码语言:javascript
运行
复制
public static MainWindowViewModel GetMainWindowViewModel() {
            SMMainWindow window = (SMMainWindow)System.Windows.Application.Current.MainWindow;
            if (window != null) {
                return (MainWindowViewModel)window.DataContext;
            }
            return null;
}

有什么想法吗?示例代码将不胜感激

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-05 00:51:22

如果你用你的窗口调度程序的一个实例来设置你的ViewModel,这会有很大的帮助。如果您有这个功能,那么您就可以在ViewModel中使用Dispatcher.Invoke来获取或设置项目。

票数 3
EN

Stack Overflow用户

发布于 2009-08-05 03:03:53

如果它是可冻结的,你也许可以冻结你的窗口。这应该允许您访问它。

dispatcher方法可能是一个很好的选择,但我总是觉得这是一种违规(感觉像是ViewModel与UI处理得太近了),但这可能是个人偏好。

然而,我在这里质疑你的方法。有没有一个很好的理由让一个ViewModel去引用另一个呢?我会考虑重新考虑这种方法。通常,当人们这样做时,他们是在访问ViewModel,而实际上他们应该接触的是模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1230604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档