2009-08-21 7 views
2

Angenommen, wir haben ein ItemsControl, das an eine Quelle gebunden ist. Gibt es einen Unterschied in der Leistung zwischenWPF DataContext vs ItemsSource Leistung

ItemsControl.DataContext = resultSet; 

und

ItemsControl.ItemsSource = resultSet; 

(In beiden Fällen korrekt in XAML binded)

Antwort

11

Nun, ein Performance-Unterschied ist nicht wirklich wichtig, da sich die beiden Linien zu tun ganz andere Dinge. Die Datacontext ist das Objekt, das lokale Databindings des Items aus gesetzt werden:

<ItemsControl Width={Binding Length} /> 

Wird die Eigenschaft Länge des als Datacontext gesetzt Objekt nehmen und es auf die Breite Abhängigkeitseigenschaft des Items zu binden.

Auf der anderen Seite ist ItemSource das IEnumerable-Objekt, das iteriert werden sollte, um die untergeordneten Elemente im Steuerelement zu erstellen. (Jedes Objekt in der ItemSource wird zum DataContext des von ihm erstellten untergeordneten Elements.)