10

我正在尝试从 MSDN 制作像官方 DataGrid.ItemsSource 这样的属性:

public IEnumerable ItemsSource { get; set; }

这在任何派生类中提供了对任何类型的支持。有了这个,我可以设置类似

var list = new List<ObservableCollection<KeyValuePair<decimal, bool>>>();
MyDataGrid.ItemsSource = list;

但是,当我尝试在没有 T 型的情况下创建 IEnumerable 的属性时,正如 MSDN 所说,我在 VisualStudio 上遇到错误:

Using the generic type 'System.Collections.Generic.IEnumerable<T>' requires 1 type arguments

那么,有什么问题呢?

4

1 回答 1

20

您需要使用非泛型类型System.Collections.IEnumerable
(注意不同的命名空间)

请注意,在 .Net 4.0+ 中,您可以IEnumerable<object>改用(由于协方差)。

于 2013-07-17T15:03:11.863 回答