Так что же такое XAML?

я начал свое изложение с

Большинство пользовательских интерфейсов WinFx будут, скорее всего, программироваться с помощью XAML. Я начал свое изложение с объектов и программного кода, чтобы подчеркнуть тот факт, что объекты, с которыми вы имеете дело в WinFx, — это просто новый набор элементов управления и классов из новой группы именных пространств, дополняющий существующую инфраструктуру. NET Framework. Однако помимо объектов, поддерживающих новые возможности WinFx в плане пользовательских интерфейсов, вводится и новый язык для спецификации кода этих интерфейсов. XAML дает в руки программистам, пишущим UI для Windows, возможности декларативной разметки с использованием XML, которой уже многие годы пользуются разработчики Web-приложений и которая часто позволяет проще специфицировать расположение и свойства элементов UI. Теоретически никому никогда не придется непосредственно редактировать XAML или какую-то другую форму кода XML. Инструментальные средства должны скрывать XML, позволяя вам манипулировать объектами в конструкторе более простыми способами, а в качестве результата этих манипуляций должен генерироваться соответствующий код XML. Можно надеяться, что к моменту выхода WinFx на рынок такие инструменты будут и в Visual Studio.

Но пока вам придется кодировать XAML вручную при помощи текстового редактора. В Visual Studio 2005 имеется, правда, привязанная к схеме поддержка IntelliSence в редакторе XML, которая может подсказывать вам допустимые элементы и атрибуты в зависимости от того, в каком месте дерева элементов XAML вы находитесь. Но все равно вы пишете XML вручную, что оставляет желать много лучшего.

В качестве примера я воссоздам пример DataBindinglOl, который показан на рис. Б.2 — окно с полем списка заказчиков и два текстовых поля, привязанных к одной коллекции, отображающих имя заказчика и телефонный номер из текущей записи, — но реализую приложение, используя смесь XAML и программного кода.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *