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.)