作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
将可枚举对象绑定(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/
我是一名优秀的程序员,十分优秀!