WPF:什么可以用作 Collection View Source 的源
WPF: What can be used as Source for CollectionViewSource
我想知道,哪些 类 and/or 接口可以分配给 WPF CollectionViewSource.Source Property
。帮助文档没有解释任何内容:
public object Source { get; set; }
没有解释,也没有代码示例,因为 Source
是 object
类型,任何东西都可以赋值。我想 Source
支持各种接口作为源,但是哪些接口?
例如,我知道它与实现多个接口的 List<>
一起使用。我想其中最基本的是 IEnumerable<T>
。 Source
是否接受任何实现 IEnumerable<T>
的东西, Source
属于 object
类型的原因是因为它还必须支持 IEnumerable
?它还支持什么?如果还实现了像 IList<>
这样的更高接口,它会利用吗?
致所有忍不住将问题标记为重复的人:
如果您将一个问题标记为重复并阻止任何进一步的答案,这将是非常令人沮丧的,只是因为您在某处看到一个答案将某些内容分配给 CollectionViewSource.Source
。他们有很多。但是请注意,这个问题不是只问一个例子,而是我想知道所有可以赋值的东西。
public static readonly DependencyProperty SourceProperty
= DependencyProperty.Register(
"Source",
typeof(object),
typeof(CollectionViewSource),
new FrameworkPropertyMetadata(
(object)null,
new PropertyChangedCallback(OnSourceChanged)),
new ValidateValueCallback(IsSourceValid));
让我们看看IsSourceValid是如何实现的:
private static bool IsSourceValid(object o)
{
return (o == null ||
o is IEnumerable ||
o is IListSource ||
o is DataSourceProvider) &&
!(o is ICollectionView);
}
因此,有效类型是:
- IEnumerable
- IListSource
- DataSourceProvider
ICollectionView 无效 来源。
我想知道,哪些 类 and/or 接口可以分配给 WPF CollectionViewSource.Source Property
。帮助文档没有解释任何内容:
public object Source { get; set; }
没有解释,也没有代码示例,因为 Source
是 object
类型,任何东西都可以赋值。我想 Source
支持各种接口作为源,但是哪些接口?
例如,我知道它与实现多个接口的 List<>
一起使用。我想其中最基本的是 IEnumerable<T>
。 Source
是否接受任何实现 IEnumerable<T>
的东西, Source
属于 object
类型的原因是因为它还必须支持 IEnumerable
?它还支持什么?如果还实现了像 IList<>
这样的更高接口,它会利用吗?
致所有忍不住将问题标记为重复的人:
如果您将一个问题标记为重复并阻止任何进一步的答案,这将是非常令人沮丧的,只是因为您在某处看到一个答案将某些内容分配给 CollectionViewSource.Source
。他们有很多。但是请注意,这个问题不是只问一个例子,而是我想知道所有可以赋值的东西。
public static readonly DependencyProperty SourceProperty
= DependencyProperty.Register(
"Source",
typeof(object),
typeof(CollectionViewSource),
new FrameworkPropertyMetadata(
(object)null,
new PropertyChangedCallback(OnSourceChanged)),
new ValidateValueCallback(IsSourceValid));
让我们看看IsSourceValid是如何实现的:
private static bool IsSourceValid(object o)
{
return (o == null ||
o is IEnumerable ||
o is IListSource ||
o is DataSourceProvider) &&
!(o is ICollectionView);
}
因此,有效类型是:
- IEnumerable
- IListSource
- DataSourceProvider
ICollectionView 无效 来源。