gpt4 book ai didi

c# - 如何替换可枚举集合的默认 CollectionView?

转载 作者:行者123 更新时间:2023-11-30 14:12:34 29 4
gpt4 key购买 nike

将可枚举对象绑定(bind)到 ItemsSource 或类似对象时,绑定(bind)使用可枚举对象的默认 View ,我知道您可以使用以下代码获得...

var defaultView = CollectionViewSource.GetDefaultView(someCollection);

这对我们非常有用,例如,允许我们向各种集合的默认 View 添加排序权。

但是,我们有一个专门的 Collection 类,它需要一个专门的 ListCollectionView 子类才能正常工作。也就是说,我们如何更改其默认 View ,以便在有人直接绑定(bind)到集合时返回默认 View ?

为了解决这个问题,我们创建了一个名为 MainView 的新属性,它包含我们的自定义 ListCollectionView,然后我们将 ItemsSource 之类的东西绑定(bind)到它,但这意味着我们的集合的消费者必须被明确告知不要直接绑定(bind)到集合而不是 MainView 属性,否则他们将获得默认 View 。考虑到标准只是直接绑定(bind)到集合,这是我们试图避免的潜在问题。

那么,我怎样才能将我自己的 ListCollectionView 子类指定为我们自定义集合的默认 View ?

最佳答案

在您的集合中,实现接口(interface) ICollectionViewFactory。这是一个例子:

public class MyCollection : ObservableCollection<MyItem>, ICollectionViewFactory
{
public ICollectionView CreateView()
{
return new MyListCollectionView(this);
}
}

关于c# - 如何替换可枚举集合的默认 CollectionView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17207923/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com