Skip to content

Latest commit

 

History

History
101 lines (96 loc) · 10.8 KB

Lib 2013 Rus. Building Windows 8 Apps with C# and XAML.md

File metadata and controls

101 lines (96 loc) · 10.8 KB

Lib 2013 Rus. Building Windows 8 Apps with C# and XAML

  1. Джереми Ликнесс. Приложения для Windows 8 на C# и XAML.
  2. Jeremy Likness. Building Windows 8 Apps with C# and XAML. http://windows8applications.codeplex.com/ https://github.com/JeremyLikness/BuildWin8Apps

Глава 2. Начало работы (стр. 54). Сведения о приложении: Computer\HKEY_CURRENT_USER\Software\Classes\ActivatableClasses\Package Системные контракты: Computer\HKEY_CURRENT_USER\Software\Classes\Extensions\ContractId\Windows.ShareTarget\PackageId Developer Command Prompt: ILDasm Метаданные WinRT-компонентов: C:\windows\system32\WinMetadata

Глава 3. Расширяемый язык разметки приложений. Стр. 85. XAML - Extensible Application Markup Language (Расширяемый язык разметки приложений). WPF - Windows Presentation Foundation. WF - Windows Workflow Foundation. Визуальное дерево - описание видимых UI-элементов. Routed events - перенаправляемые события. Подъём события PointerPressed . e.Handled = true; // предотвратить подъём события по дереву. Dependency property system - система зависимых свойств. Наследование класс DependencyObject. Реализация интерфейса INotifyPropertyChanged. Преимущества зависимых свойств:

  1. Уведомление об изменении свойства.
  2. Реализация обратного вызова при изменении свойства.
  3. Значения, предлагаемые по умолчанию.
  4. Приоритет значения.
  5. Наследование.

Присоединённые свойства. Стр. 94.

  • это особый вид зависимых свойств, присоединяются к объекту. Польза присоединённых свойств:
  1. Через присоединённое свойство можно добавлять к элементу дополнительные атрибуты, не характерные для этого элемента, но полезные в контексте других элементов. Например: Grid.Row. Значение: textBlock.GetValue(Grid.RowProperty).
  2. Позволяют задавать многократно используемые режимы работы.
  3. Значения доступны конструктору, что упрощает их применение в XAML.

Привязка данных. Стр. 97. Источник - хранилище данных, представленное любым CLR-объектом. От POCO (Plain Old CLR Object) до зависимых свойств. Источником может быть WinRT-объект, который имеет атрибут BindableAttrribute или реализует интерфейс ICustomPropertyProvider. Целевой объект привязки должны быть свойством DependencyPropperty элемента FrameworkElement, значение которого синхронизируется с источником данных. Механизм привязки данных: Объект привязки данных <-> Зависимое свойство <-> CLR-объект - CLR-свойство <-> Конвертер значений (IValueConverter) Примеры: DataContext (контекст данных). Параметры привязки данных:

  • Converter
    • Любой ресурс с ключом, который реализует интерфейс IValueConverter.
    • Позволяет осуществлять преобразование типов данных.
  • Converter-Language
    • Строка, содержащая название языка.
    • По умолчанию конвертеру передается язык, который определяется контекстом приложения. Если данный параметр установлен, он переопределяет значение, заданное по умолчанию, и преобразователю передается вновь заданное значение.
  • Converter-Parameter
    • Объект любого типа или ссылка на существующий объект.
    • Объект, заданный в данном параметре, передается конвертеру. Обычно он используется для какой-либо настройки преобразования. Например, передача некоего флага может инвертировать результат логической операции.
  • ElementName
    • Имя элемента (значение свойства Name) в текущей XAML-области видимости имен (или в области видимости имен шаблонного родителя, если цель привязки находится в шаблоне).
    • Позволяет осуществлять привязку к другому элементу. Данное свойство является взаимоисключающим для свойств Source и RelativeSource.
  • Mode
    • OneWay (односторонняя привязка) — обновление целевого свойства происходит в момент привязки, а также тогда, когда меняется контент источника данных.
    • OneTime (единовременная привязка) — обновление целевого свойства осуществляется только в момент привязки.
    • TwoWay (двусторонняя привязка) — обновление целевого свойства происходит в момент привязки, затем изменения в источнике передаются приемнику данных и наоборот.
    • Режим, который определяет направление привязки данных. Для того чтобы решить, какой именно режим нужен в каждом конкретном случае, следует принять во внимание особенности работы реализуемых механизмов. А именно: нужно ли осуществить привязку только для чтения данных из источника или же есть необходимость принимать данные, которые вводит пользователь в целевой элемент интерфейса, и передавать их в источник данных.
  • Path
    • Путь к свойству объекта-источника данных. Это может быть имя свойства (включая запись через точку для вложенных свойств) или индексатор (то есть запись вида [3].Name для имени свойства третьего элемента в списке и [Foo] для значения записи "Foo" в словаре).
    • Путь указывает на свойство объекта-источника, которое используется для привязки данных.
  • RelativeSource
    • TemplatedParent — для элемента управления, где применяется шаблон ControlTemplate. Self — для привязки к собственным свойствам целевого элемента.
    • Это свойство служит для задания расположения источника относительно целевого объекта привязки. Привязку можно осуществить либо к другому элементу управления, либо к самому целевому объекту привязки (например, чтобы при изменении одного свойства менялось другое). Данное свойство и свойства ElementName и Source являются взаимоисключающими.
  • Source
    • Объект-источник привязки данных, обычно это статический ресурс, заданный в словаре ресурсов (если оставить это значение не заполненным, по умолчанию привязка будет осуществляться к текущему контексту данных (DataContext)).
    • Используйте это свойство для того, чтобы задать объект-источник привязки, который отличается от текущего контекста данных (DataContext) целевого объекта. Часто это либо свойство текущего контекста данных, либо статический ресурс, объявленный в словаре ресурсов. Уведомления от объекта-источника к системе привязки данных об изменении значений своих свойств:
  1. Зависимые свойства (наследование класса DependencyObject).
  • часть инфраструктуры представления данных в XAML. Он расположен в пространстве имен Windows.UI.Xaml и его использование имеет смысл при создании нестандартных элементов управления или объектов, которые представляют свойства, нуждающиеся в анимации.
  1. Реализация интерфейса INotifyPropertyChanged (событие PropertyChanged).
  • часть базовой системной инфраструктуры, он не зависит ни от XAML, ни от UI. Это позволяет создавать облегченные объекты, которые еще называют простыми старыми CLR-объектами (Plain Old CLR Object, POCO).