Читайте также:
|
|
Привязка данных (databinding) – это отношение, которое используется для извлечения информации из объекта-источника и установки свойства целевого объекта. Механизм привязки данных WPFработает только для свойств зависимостей целевого объекта. Сам целевой объект обычно является элементом управления. Объектом-источником может быть произвольный объект.NET.Привязка данных способна (при определённых условиях) автоматически обновлять целевое свойство при изменении объекта-источника.
Очевидно, что при определении привязки данных нужно указать объект-источник и правило извлечения информации из него. Кроме этого, можно выполнить настройку следующих параметров:
· Направление привязки. Привязка может быть однонаправленной (целевое свойство меняется при изменении свойства-источника), двунаправленной (модификации в источнике и целевом объекте влияют друг на друга) и от цели к источнику (исходное свойство обновляется при изменении целевого свойства).
· Условие обновления источника. Если привязка двунаправленная или от цели к источнику, можно настроить момент обновления источника.
· Конвертеры значений. Привязка может выполнять автоматическое преобразование данных при их перемещении от источника к целевому объекту и наоборот.
· Проверка данных. Привязка позволяет определять правила валидации и поведение, осуществляемое при нарушении этих правил.
Привязка данных задаётся объектом классаSystem.Windows.Data.Binding. В табл. 12 приведено описание основных свойств этого класса.
Таблица 12
Свойства класса Binding
Имя свойства | Описание |
Converter | Объект-конвертер, используемый для преобразования данных |
ConverterCulture | Культура, передаваемая в конвертер |
ConverterParameter | Произвольный параметр, передаваемый в конвертер |
ElementName | Имя элемента WPF, который будет объектом-источником. Этот элемент и целевой объект должны принадлежать одному логическому дереву. Свойство нельзя задать совместно со свойствами RelativeSource или Source |
FallbackValue | Значение, которое будет использоваться для целевого свойства, если операция привязки закончилась неудачей |
Mode | Направление привязки (перечислениеBindingMode): · OneWay– целевое свойство обновляется при изменении свойства-источника; · TwoWay– целевое свойство обновляется при изменении свойства-источника, и свойство-источник обновляется при изменении целевого свойства; · OneTime– целевое свойство устанавливается изначально на основе значения свойства-источника, и с этого момента изменения в источнике игнорируются; · OneWayToSource– исходное свойство обновляется при изменении целевого свойства; · Default– используется направление привязки, заданное в метаданных свойства зависимостей |
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): · PropertyChanged– немедленно при изменении в целевом свойстве; · LostFocus– при потере целевым элементом управления фокуса ввода; · Explicit– при вызове метода UpdateSource(); · Default– по значению, заданному в метаданных свойства зависимостей при помощи DefaultUpdateSourceTrigger |
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=.}".
Дата добавления: 2015-11-14; просмотров: 121 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Логические ресурсы | | | Практическое использование привязки данных |