Привязка данных (Data Binding) в Silverlight - ListBox и привязка к списку

ОГЛАВЛЕНИЕ

ListBox и привязка к списку

Наконец, мы подошли к главам (Chapters). Объект Book определяет главы (Chapters) в качестве списка строк

public List<string> Chapters
{
   get { return myChapters; }
   set
   {
     myChapters = value;
     NotifyPropertyChanged("Chapters");
   }

При отображении книги главы будут отображены в элементе ListBox. При выборе новой книги будут отображены и ее главы. Вы можете произвести итерацию по главам книги и создать новый набор ListItems, но и в этом случае есть вероятность допустить ошибку. Опять же, привязка данных (Data-binding) будет более подходящим решением.

Поскольку DataSource для Title и Author (для текущей книги) также будет иметь правильный список глав (Chapters), то вы можете назначить свойству Chapter объекта Book свойство ItemSource элемента List Box, и когда будет изменен DataSource, то главы будут изменены соответственно,

<ListBox x:Name="Chapters"
   ItemsSource="{Binding Chapters, Mode=OneWay}"
   VerticalAlignment="Bottom"
   HorizontalAlignment="Left"
   Height="60" Width="200"
   Grid.Row="2" Grid.Column="1" /> 

Следующие два изображения демонстрируют новую информацию о двух книгах, отображенную во время перемещения пользователя между ними.

Рис. 2-5. Отображение первой книги

Рис. 2-6. Отображение второй книги

Скачать исходники примеров 

Источник