Главная » WPF » Привязка к объектам CLR

0

Как мы видели, данные привязываются к объектам CLR с помощью свойств и списков (списком  считается  любой тип, реализующий интерфейс IEnumerable).

Связывание  устанавливает связь между источником и получателем. В случае при вязки к объекту, источник определяется путем к свойству, то есть последовательностью имен свойств и индексов, разделенных точками. Я тщательно следил за выбором слов; поначалу путь к свойству в смысле связывания можно перепутать с синтаксисом языка C#, поскольку в простейшей форме они действительно очень похожи. Синтаксис пу ти к связываемому свойству такой же, как уже встречался выше при обсуждении рас кадровок в главе 5, и мы еще вернемся к нему в главе 8, когда займемся стилями.

Идентификатор имени  свойства  для  связывания с объектом  может  записы ваться в двух видах: для простых свойств CLR и для зависимых  свойств, произ водных от класса DependencyProperty, которые используются в WPF. Чтобы по нять, в чем разница, начнем с простого примера:

<Window xmlns=’http://schemas.microsoft.com/winfx/2006/xaml/presentation’ xmlns:x=’http://schemas.microsoft.com/winfx/2006/xaml’

<StackPanel>

<TextBox Name=’text1’>Hello</TextBox>

<TextBox Text=’{Binding ElementName=text1, Path=Text}’ />

</StackPanel>

</Window>

Здесь  свойство  Text  объекта TextBox  связывается со свойством  Text  другого объекта. С очень похожим примером мы уже встречались выше. Поскольку Text – зависимое  свойство, то этот пример в точности эквивалентен такому:

<Window xmlns=’http://schemas.microsoft.com/winfx/2006/xaml/presentation’ xmlns:x=’http://schemas.microsoft.com/winfx/2006/xaml’

<StackPanel>

<TextBox Name=’text1’>Hello</TextBox>

<TextBox Text=’{Binding ElementName=text1, Path=(TextBox.Text)}’ />

</StackPanel>

</Window>

Во  втором  случае  мы  воспользовались формой  идентификатора  свойства,

«классифицированной классом». Результат в обоих случаях одинаков, но во вто

ром примере  удается  избежать  применения отражения для  разрешения имени

«Text» в выражении привязки. Эта оптимизация полезна с двух точек зрения: во первых, чтобы избежать  накладных  расходов на отражение,  а, во вторых,  чтобы обеспечить привязку к присоединенным свойствам5.

Рис. 6.7. Объектная модель класса Person.

У человека есть единственное имя и нуль или более адресов.

Рис. 6.8. Составные пути привязки

До сих пор нас интересовало в основном  отображение  данных. Если у свой ства, к которому мы привязываемся, есть метод установки, то возможна и двусто ронняя  привязка.

Источник: К. Андерсон  Основы  Windows Presentation Foundation. Пер. с англ. А. Слинкина — М.: ДМК Пресс, 2008 — 432 с.: ил.

По теме:

  • Комментарии