Привязка данных (Data Binding) в Silverlight - Привязка к элементу TextBlock
ОГЛАВЛЕНИЕ
Привязка к элементу TextBlock
Давайте начнем с простого и привяжем два первых блока с текстом. Основа заключается в том, что необходимо сообщить текстовому блоку о том, что вы привязываете и что даете название свойству. Вы также сообщаете Binding о режиме, который будете использовать (односторонний, двусторонний или одноразовый). По умолчанию установлен режим в одну сторону, но хорошим тоном программирования будет явная установка данного свойства. Данная привязка выполняется в текстовом поле и обрамлена фигурными скобками,
Text="{Binding Title, Mode=OneWay }"
Тем самым, первые две строки выглядят так
<TextBlock x:Name="TitlePrompt" Text="Title: "
VerticalAlignment="Bottom"
HorizontalAlignment="Right"
Grid.Row="0" Grid.Column="0" />
<TextBlock x:Name="Title"
Text="{Binding Title, Mode=OneWay }"
VerticalAlignment="Bottom"
HorizontalAlignment="Left"
Grid.Row="0" Grid.Column="1" />
<TextBlock x:Name="AuthorPrompt" Text="Author: "
VerticalAlignment="Bottom"
HorizontalAlignment="Right"
Grid.Row="1" Grid.Column="0" />
<TextBlock x:Name="Author"
Text="{Binding Author, Mode=OneWay }"
VerticalAlignment="Bottom"
HorizontalAlignment="Left"
Grid.Row="1" Grid.Column="1" />
Пока что мы не знаем к свойствам Title и Author которого элемента мы осуществляем привязку, но тем не менее, мы подразумеваем наличие объекта с данными свойствами.
Тоже самое выполняется для всех других элементов управления. Для ListBox привязывается ItemSource, но в данном случае оно ожидает привязку к коллекции (collection ; в частности, к IEnumerable).
<ListBox x:Name="Chapters"
ItemsSource="{Binding Chapters, Mode=OneWay}"
VerticalAlignment="Bottom"
HorizontalAlignment="Left"
Height="60" Width="200"
Grid.Row="2" Grid.Column="1" />
Checkbox подразумевает привязку к объекту, который будет иметь тип Boolean.
<CheckBox x:Name="MultipleAuthor" IsChecked="{Binding MultipleAuthor, Mode=TwoWay}"
VerticalAlignment="Bottom"
HorizontalAlignment="Left"
Grid.Row="3" Grid.Column="1"/>