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

Built in Types

Читайте также:
  1. Causes, types and results of semantic change.
  2. CHAPTER XXIII COMMUNICATIVE TYPES OF SENTENCES
  3. DIFFERENT TYPES of HOUSES
  4. Reading 5: Types of Laws
  5. SOCIAL STEREOTYPES
  6. The house was built by my husband in 1987.

В XAML добавилась возможность использовать стандартные типы.NET в разметке без указания лишних namespace, для чего это стало нужно видно в нижеописанных возможностях. Если раньше для описания в XAML объекта типа string приходилось писать:

<s:String xmlns:s="clr-namespace:System;assembly=mscorlib"> Foo </s:String>

Теперь же

<x:String > Foo </s:String>

Поддержка Generics

Этого давно не хватало, а именно с выпуска первого WPF. Как часто хотелось объявить в XAML ObservableCollection с типом вроде Person, а для этого нам приходилось создавать новый тип и наследовать его от коллекции, либо инкапсулировать ее:

class PersonCollection:ObservableCollection<Person>{}

и уже этот новый класс объявлять в ресурсах:

<l:PersonCollection> <Person Name="Tom" /></l:PersonCollection>

Теперь же этого можно избежать, теперь в XAML можно объявлять и инициализировать generics следующим образом:

<ObservableCollection
x:TypeArguments='local:Person'
xmlns='clr-namespace:System.Collections.ObjectModel;assembly=System' >
<local:Person Name='Tom' Age='21' />
</ObservableCollection>

FactoryMethod\Arguments

Еще одна возможность, которую хотели уже давно. Возможность использовать методы для инициализации объектов, а так же конструкторы, которые принимают параметры. Для того чтобы создать объект такого типа:

public class Person { public Person (string name, int age) { Name = name; Age = age; } public string Name {get;set;} public int Age {get;set;}}

В XAML теперь можно написать

<local:Person> <x:Arguments> <x:String>Tom</x:String> <x:Int32>21</x:Int32> </x:Arguments> </local:Person>

Более того для создания объекта теперь можно использовать FactoryMethod, самый простой пример – это Guid.NewGuid():

<p:Guid x:FactoryMethod='NewGuid'/>

Или более сложный пример с передачей параметров:

<coll:List x:Key='list' x:TypeArguments='x:String'
x:FactoryMethod='local:Factory.CreateStringList'> <x:Arguments> <x:String>Mickey,Donald</x:String> </x:Arguments></coll:List>

Named Object References

Тут все просто, такой биндинг:

<Label Target='{Binding ElementName=firstNameBox}' >_Target</Label><TextBox Name='firstNameBox'>Uses Binding</TextBox>

Теперь можно записать при помощи x:Reference

<Label Target= '{x:Reference secondNameBox}'>_Second Target</Label>

Или даже так:

<Label Target= 'thirdNameBox' >_Third Target</Label>

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


Читайте в этой же книге: Создание стиля | Использование стиля | Создание шаблона | Связывание в Шаблонах | Установка шаблонов через стили | Ключевые термины | Задача 3. | Задача 6. | Шаг 1. Применение стиля в XAML документе | Шаг 2. Динамическое применение стилей в коде приложения |
<== предыдущая страница | следующая страница ==>
Поддержка множества целевых платформ| Ключевые термины

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