2013-07-17 18 views
10

Ich versuche, eine Eigenschaft wie die offizielle DataGrid.ItemsSource zu machen, von MSDN:IEnumerable Eigenschaft ohne Typen

public IEnumerable ItemsSource { get; set; } 

Dies bietet die Unterstützung jeglicher Art, in jeder abgeleiteten Klasse. Damit kann ich so etwas wie

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

gesetzt Aber wenn ich versuche, eine Eigenschaft eines IEnumerable ohne den Typ T zu machen, genau wie MSDN sagt, bekomme ich einen Fehler auf Visual Studio:

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

Also, was ist falsch?

Antwort

16

Sie müssen den nicht generischen Typ System.Collections.IEnumerable verwenden.
(beachten Sie die anderen Namespace)

Beachten Sie, dass in .NET 4.0 und höher Sie IEnumerable<object> stattdessen verwenden können (aufgrund der Kovarianz).