WPF DataContext vs ItemsSource Performance - PullRequest
2 голосов
/ 21 августа 2009

Предположим, у нас есть ItemsControl, который привязан к источнику. Есть ли разница в производительности между

ItemsControl.DataContext = resultSet;

и

ItemsControl.ItemsSource = resultSet;

(в обоих случаях правильно связывается в XAML)

1 Ответ

11 голосов
/ 21 августа 2009

Ну, разница в производительности на самом деле не имеет значения, так как две линии делают совершенно разные вещи. DataContext - это объект, из которого взяты локальные привязки данных ItemsControl:

<ItemsControl Width={Binding Length} />

Примет свойство Length объекта, заданного как DataContext, и свяжет его со свойством зависимости Width элемента ItemsControl.

С другой стороны, ItemSource - это объект IEnumerable, который должен быть повторен для создания дочерних элементов внутри элемента управления. (Каждый объект внутри ItemSource станет DataContext созданного им дочернего элемента)

...