- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在具有 DataTable 作为 ItemsSource 的 ListView 上进行自定义排序:
myListView.ItemsSource = (data as DataTable);
这是我的排序函数的第一行:
DataView view = (myListView.ItemsSource as DataTable).DefaultView;
ListCollectionView coll = (ListCollectionView)CollectionViewSource.GetDefaultView(view);
第二行抛出一个类似于:
无法将“System.Windows.Data.BindingListCollectionView”转换为“System.Windows.Data.ListCollectionView”
有人有解决办法吗?谢谢 4 个答案
最佳答案
它返回一个 ICollectionView,而不是 ListCollectionView。您很可能需要 View 之上的 View 来获取 ListCollectionView 所具有的功能。由于 ICollectionView 实现了 CollectionChanged,因此您不会想使用 BindingListCollectionView。
DataView view = (myListView.ItemsSource as DataTable).DefaultView;
ListCollectionView coll = new ListCollectionView(CollectionViewSource.GetDefaultView(view));
虽然替代方案是:
DataView view = (myListView.ItemsSource as DataTable).DefaultView;
BindingListCollectionView coll = new BindingListCollectionView(view);
如果您只想要一个 View 。
如果直接绑定(bind)到 WPF 控件,最好直接绑定(bind)到它而不创建 BindingListCollectionView/ListCollectionView,因为 DefaultView 已经允许对 DataTable 进行排序。
Binding binding = new Binding() { Source = (myListView.ItemsSource as DataTable) };
this.myListView.SetBinding(myListView.ItemsSourceProperty, binding);
DataView view = (myListView.ItemsSource as DataTable).DefaultView;
view.Sort = "Age";
希望对您有帮助,
塔姆斯罗伊斯
关于datatable - WPF BindingListCollectionView 到 ListCollectionView(数据表作为 ItemsSource),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2890371/
我有一个 ObservableCollection 和一个 ListCollectionView 并带有一个 Filter 谓词集。当我更改全局条件时,比如说搜索文本,我可以在 View 上调用 .R
这个问题在这里已经有了答案: Should I bind to ICollectionView or ObservableCollection (5 个答案) 关闭 8 年前。 我无意中发现了 Li
我一直在研究如何避免因 View 模型中对 INotifyCollectionChanged 事件的强引用而导致的内存泄漏。我正在尝试使用 ListCollectionView 看看它是否适合我。我认
ListCollectionView.AddNew如何确定它创建的对象的类型,以及如何影响它? 我有几种类型的层次结构( Base 、 DerivedA 和 DerivedB ),目前我的 WPF 工
我正在使用 MVVM 设计模式,ListView 绑定(bind)到 ViewModel 上的 ListCollectionView。我还有几个用于过滤 ListView 的组合框。当用户从组合框中选
我正在使用 ListCollectionView 作为选项卡控件的数据上下文。我已经基于枚举向其中添加了一个 GroupDescription,我希望一个特定的组显示为选项卡控件中的第一个选项卡,但现
我像这样扩展了 ListCollectionView 并覆盖了 GetItemAt: public class LazyLoadListCollectionView : ListCollectionV
当我运行以下测试时,我得到一个 ArgumentOutOfRangeException: [TestClass] public class ReproduceException { [Test
我有一个 ObservableCollection位于 WPF 中的 ViewModel DataGrid . DataGrid有三列: 职位栏;这是在运行时由 UserControl 呈现的,它显示
考虑以下代码(出于示例目的而通用类型名称): // Bound to ListBox.ItemsSource _items = new ObservableCollection(); // ...It
我最近在 CodeReview (CodeReview Question) 上发布了一个问题,并按照他们的建议从 ObservableCollection 转移到 ICollectionView 再到
由于 ListCollectionView 不支持索引器(例如 View[0]),我发现迭代过滤/排序列表的唯一方法是使用 foreach。 1) foreach 是否会确保在迭代期间保留 View
我遇到的问题是我的 listcollectionview 需要 3-4 秒才能更新。我想我已经正确配置了虚拟化;但是,如果不正确,请指出。我将 itemssource 绑定(bind)到 IColle
深入挖掘后,为什么 live shaping,详细按名称自动排序组,不起作用,我决定写一个小的测试应用程序,解决方案下载在这里: here 下面是问题的描述:我使用一个 ObservableColle
C#: public partial class MainWindow : Window { private readonly ViewModel vm; public MainWin
我有一个绑定(bind)到 ListCollectionView 的 ListView。 在同一个窗口中,我有一个 Button,它带有一个附加的 RoutedCommand,没有 CanExecut
所以我有一个非常简单的数据网格,其组样式如下:
这些似乎都不起作用: var source = myViewModel.MyListCollectionView.Select(x => x as MyType); var source = myVi
这里有一个双管齐下的问题,但我认为这两个主题交织在一起足以保证将它们放在一起。 在我们的应用程序中,我们有一个 ListBox ,其中填充了可能是大量项目的内容。这些项目中的每一个都使用相当复杂的项目
我想在具有 DataTable 作为 ItemsSource 的 ListView 上进行自定义排序: myListView.ItemsSource = (data as DataTable); 这是
我是一名优秀的程序员,十分优秀!