2013-07-17 12 views
10

próbuję uczynić właściwość jak oficjalna DataGrid.ItemsSource z MSDN:IEnumerable nieruchomość bez typu

public IEnumerable ItemsSource { get; set; } 

ten zapewnia wsparcie dowolnego typu, w dowolnej klasy pochodnej. Dzięki temu można ustawić coś takiego

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

Ale gdy próbuję uczynić właściwość IEnumerable bez typ T, dokładnie tak, jak mówi MSDN, otrzymuję błąd na VisualStudio:

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

Co jest nie tak?

Odpowiedz

16

Należy użyć nietypowego typu System.Collections.IEnumerable.
(uwaga na różne obszary nazw)

Należy pamiętać, że w .Net 4.0+ można zamiast tego użyć IEnumerable<object> (z powodu kowariancji).

Powiązane problemy