- •А.А. Волосевич
- •1. ОбщееописаниеWpf
- •2. ПРостейшее ПриложениеWpf
- •4. Базовые концепции wpf Иерархия классов
- •Свойства зависимостейи присоединённые свойства
- •Маршрутизируемыесобытия
- •Многопоточность в wpf
- •5. СтруктуРа Оконного приложения wpf
- •Класс Window
- •КлассApplication
- •6. Компоновка
- •Размер и выравнивание
- •Основные контейнеры компоновки
- •Прокрутка и декорирование содержимого
- •7. Обзор элеменТов управления
- •Цвета и окантовка:
- •Шрифт содержимого:
- •Элементы управления содержимым
- •Списковые элементы управления
- •Прочие элементы управления
- •8. Фигуры
- •9. Цвет,кисти, прозрачность Представление цвета в wpf
- •Лучшие кисти
- •Прозрачность
- •10. Трансформации и эффекты
- •11. Классы drawing иvisual
- •12. Ресурсы
- •Двоичные ресурсы
- •Логические ресурсы
- •13. Привязка данных Базовые концепции привязки данных
- •Практическое использование привязки данных
- •Конвертеры значений
- •Проверка данных
- •14. Стилии триггеры
- •15. ПрИвязкакколлекциямиШаблоныданных
- •16. Представления Данных
- •17. ШАблоны элементов управления
13. Привязка данных Базовые концепции привязки данных
Привязка данных (databinding) – это отношение, которое используется для извлечения информации из объекта-источника и установки свойства целевого объекта. Механизм привязки данных WPFработает только для свойств зависимостей целевого объекта. Сам целевой объект обычно является элементом управления. Объектом-источником может быть произвольный объект .NET. Привязка данных способна (при определённых условиях) автоматически обновлять целевое свойство при изменении объекта-источника.
Очевидно, что при определении привязки данных нужно указать объект-источник и правило извлечения информации из него. Кроме этого, можно выполнить настройку следующих параметров:
Направление привязки. Привязка может быть однонаправленной (целевое свойство меняется при изменении свойства-источника), двунаправленной (модификации в источнике и целевом объекте влияют друг на друга) и от цели к источнику (исходное свойство обновляется при изменении целевого свойства).
Условие обновленияисточника. Если привязка двунаправленная или от цели к источнику, можно настроить момент обновления источника.
Конвертеры значений. Привязка может выполнять автоматическое преобразование данных при их перемещении от источника к целевому объекту и наоборот.
Проверка данных. Привязка позволяет определять правила валидации и поведение, осуществляемое при нарушении этих правил.
Привязка данных задаётся объектом классаSystem.Windows.Data.Binding. В табл. 12приведено описание основных свойств этого класса.
Таблица 12
Свойства класса Binding
Имя свойства |
Описание |
Converter |
Объект-конвертер, используемый для преобразования данных |
ConverterCulture |
Культура, передаваемая в конвертер |
ConverterParameter |
Произвольный параметр, передаваемый в конвертер |
ElementName |
Имя элемента WPF, который будет объектом-источником. Этот элемент и целевой объект должны принадлежать одному логическому дереву. Свойство нельзя задать совместно со свойствами RelativeSource или Source |
FallbackValue |
Значение, которое будет использоваться для целевого свойства, если операция привязки закончилась неудачей |
Mode |
Направление привязки (перечислениеBindingMode):
|
IsAsync |
Еслисвойство установлено в true, извлечение данных из источника будет происходить асинхронно |
NotifyOnSourceUpdated |
Булево значение: указывает на необходимость генерации события SourceUpdated при передаче информации от объекта-источника к целевому объекту |
NotifyOnTargetUpdated |
Булево значение: указывает на необходимость генерации события TargetUpdated при передаче информации от целевого объекта к объекту-источнику |
NotifyOnValidationError |
Булево значение: указывает на необходимость генерации присоединённого события Errorу целевого объекта при ошибках проверки данных |
Path |
Путь к информации в объекте-источнике |
RelativeSource |
Путь к объекту-источнику, задаваемый относительно целевого объекта.Свойство нельзя задать совместно со свойствами ElementName или Source |
Source |
Объект-источник. Свойство нельзя задать совместно со свойствами ElementName или RelativeSource |
StringFormat |
Форматированиедля извлекаемых данных строкового типа |
TargetNullValue |
Значение, которое будет использоваться для целевого свойства, если из источника извлекается null |
ValidatesOnDataErrors |
Булево значение: указывает на использование объектом-источником интерфейса IDataErrorInfo |
ValidatesOnExceptions |
Булево значение: указывает на необходимость рассматривать исключения как ошибки валидации |
ValidationRules |
Коллекция объектов, определяющих правила валидации |
UpdateSourceExceptionFilter |
Метод обработки исключений, генерируемых при валидации |
UpdateSourceTrigger |
Задаёт момент обновления источника при изменениях в целевом свойстве (перечислениеUpdateSourceTrigger):
|
XPath |
Выражение XPath. Может использоваться, если источник привязки возвращает XML |
В свойство привязки Path записывается строка по следующим правилам:
В простейшем случае значением свойства Path является имя свойства объекта-источника, используемого в привязке:Path=PropertyName.
Подсвойства свойства можно указывать с помощью синтаксиса, подобного используемому в C#: Path=ShoppingCart.Order.
Для создания привязки к присоединяемому свойству поместите это присоединяемое свойство в скобки:Path=(DockPanel.Dock). Такой же синтаксис можно использовать и для простых свойств, если известен тип объекта-источника: Path=(TextBox.Text).
Элементы индексатора можно использовать с помощью квадратных скобок: Path=ShoppingCart[0].
Если источник является представлением коллекции, Path=/ задаёт привязку к текущему элементу в коллекции. Можно указать подсвойство текущего элемента: Path=/SubProp.
Для привязки к текущему источнику можно использовать путь в виде точки, т. е.Text="{Binding}" эквивалентно Text="{Binding Path=.}".
