Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Создание представления, определенного как шаблон данных.

Читайте также:
  1. I СОЗДАНИЕ ОРГАНИЗАЦИОННОЙ ДИАГРАММЫ
  2. I Создание рисунка в технике акварель
  3. II СОЗДАНИЕ ДИАГРАММ ДРУГИХ ТИПОВ
  4. II Создание пользовательской кисти
  5. III Технология использования градиента. Создание пользовательского градиента
  6. IV. Создание образа убийцы
  7. Thorn;Создание графического элемента SmartArt

Представление может быть определено как шаблон данных и связано с типом модели представления. Шаблоны данных могут быть определены как ресурсы, или могут быть определены как встроенные, в пределах элемента управления, который отображает модель представления. «Контент» элемента управления является экземпляром модели представления, и шаблон данных используется для её визуального представления. WPF и Silverlight автоматически инстанцируют шаблон данных и установят его контекст данных в экземпляр модели представления во время выполнения. Этот метод является примером ситуации, в которой в начале инстанцируют модель представления, а уже потом – представление.

Шаблоны данных гибки и легковесны. Разработчик UI может использовать их, чтобы легко определить визуальное представление модели представления, без какого-либо сложного кода. Шаблоны данных ограничиваются представлениям, которые не требуют никакой логики UI (code-behind). Для визуальной разработки и редактирования шаблонов данных, может использоваться Microsoft Expression Blend.

Следующий пример показывает ItemsControl, который связан со списком клиентов. Каждый объект потребителя в базовой коллекции является экземпляром модели представления. Представление для клиента определяется встроенным шаблоном данных. В следующем примере представление для каждой потребительской модели представления состоит из StackPanel с меткой и текстовым полем, связанным со свойством Name модели представления.

<ItemsControl ItemsSource="{Binding Customers}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="Customer Name: "/>
<TextBox Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

Можно также задать шаблон данных как ресурс. Следующий пример показывает шаблон данных, определённый как ресурс и применённый к элементу управления через расширение разметки StaticResource.

<UserControl...>
<UserControl.Resources>
<DataTemplate x:Key="CustomerViewTemplate">
<local:CustomerContactView />
</DataTemplate>
</UserControl.Resources>
<Grid>
<ContentControl
Content="{Binding Customer}"
ContentTemplate="{StaticResource CustomerViewTemplate}">
</Grid>
</Window>

Здесь, шаблон данных обертывает конкретный тип представления. Это позволяет представлению определять поведение code-behind. Таким образом, шаблонный механизм данных может использоваться для того, чтобы поверхностно предоставить связи между представлением и моделью представления. Хотя предыдущий пример показывает шаблон в ресурсах UserControl, его часто помещают в ресурсы приложения для повторного использования.


Дата добавления: 2015-08-13; просмотров: 58 | Нарушение авторских прав


Читайте в этой же книге: События | Команды | Команды и привязка к данным | Добавление триггеров к данным | Добавление триггеров к элементам управления | Если мы хотим получать извещения о нажатии любой кнопки в окне, достаточно просто вызвать метод | Триггер, который позволяет применять изменения, основанные на состоянии нескольких свойств. | Шаг 2. Использование нестандартных команд. | Класс представления (View). | Класс модели представления (View Model). |
<== предыдущая страница | следующая страница ==>
Реализация INotifyCollectionChanged.| Краткие итоги

mybiblioteka.su - 2015-2024 год. (0.006 сек.)