【发布时间】:2013-09-18 09:26:11
【问题描述】:
我正处于这个困境中,希望有人可以帮助我
抱歉,我无法将代码粘贴到此处作为公司块发布在这里。
我正在尝试在 xaml 中使用 collectionviewsource。我尝试了两种方法,静态资源和 cvs.source。第一个效果很好,但限制是我只能从代码隐藏中找到资源。但控制 ui 和显示 ui 不在同一个视图上,我不知道如何触发排序/过滤 所以我转向第二个选项,我将 cvs 放在视图模型中,并将属性暴露给两个 ui。但我得到了这个著名的错误“试图改变不属于这个线程的用户界面”
所以一般来说,把 csv 放在哪里的好习惯是什么。我检查了很多地方建议第二个选项http://www.xamlplayground.org/post/2009/07/18/Use-CollectionViewSource-effectively-in-MVVM-applications.aspx 和XAML Binding to a CollectionViewSource property on a ViewModel,但似乎没有人提到 ui 线程所有权问题。我是不是在做一些非常愚蠢的事情
谢谢
【问题讨论】:
-
CollectionViewSource旨在用于 XAML。您正在 ViewModel 中寻找CollectionView。 -
为什么你只能从代码隐藏中找到[静态]资源?当然,声明
StaticResource的全部意义在于您可以在 XAML 中引用它? -
@Sheridan,我有两个 ui 和两个代码隐藏。我如何将事件/命令从一个 ui 路由到另一个 ui?我看到的大部分示例代码,代码隐藏都很轻。
-
@HighCore,你是对的。您甚至可以在不在 xaml 或后台代码中声明 collectionviewsource 的情况下获得 collectionview。每个集合对象都有默认视图
标签: c# wpf xaml mvvm collectionviewsource