Привязка коллекции к сетке с помощью шаблонов

так как программисты использующие ваш

Можно было бы ожидать, что существует способ привязки коллекции объектов Customer К элементу управления сетки или таблицы, позволяющий получить табличное представление данных, подобно тому, как это можно сегодня сделать при помощи элементов управления DataGridView Или DataGrid. К сожалению, в наборе элементов управления WinFx еще нет развитого табличного элемента управления с привязкой к данным, поэтому приходится проделать немалую работу, чтобы генерировать UI, содержащий привязанную к данным сетку элементов управления, которая имитирует поведение DataGridView.

Один из возможных подходов состоит в том, чтобы программно перебирать коллекцию данных и динамически добавлять к сетке дочерние элементы управления. Но такой способ может оказаться неаккуратным, утомительным и слишком уязвимым для ошибок. Более изящным, хотя и менее очевидным подходом является использование шаблонов элементов WinFx. При помощи шаблонов элементов вы можете определить шаблон для содержания других элементов управления, и это содержание может быть сколь угодно сложным и содержать другие элементы. Например, чтобы в качестве отклика на привязку данных создать на ходу сетку текстовых полей, вы могли бы воспользоваться кодом XAML, показанным на листинге Б. З. Вместо объекта Window Этот пример определяет Раде Как часть приложения NavigationApplication. В NavigationApplication Автоматически создается окно NavigationWindow, И объект Раде, Специфицированный для свойства StartupUri Элемента NavigationApplication, Загружается в это окно в качестве начальной страницы. В результате вы получаете навигационные возможности браузера, но в развитой среде приложения В листинге Б. З под ItemsControl Определяется шаблон ItemTemplate. Этот ItemsControl Привязан к контексту данных по умолчанию, который устанавливается в коде поддержки при загрузке страницы, как показано чуть ниже. Происходит следующее. Для каждого элемента в привязанной коллекции в элемент ItemsControl Вводится экземпляр содержания ItemTemplate. Тем самым создается экземпляр сетки Grid, А каждый из содержащихся в ней элементов управления привязывается к соответствующей части текущего элемента, отображаемого для каждой строки в источнике данных.