Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом примере показано, как реализовать сценарий master-detail (сценарий основной информации и подробных сведений).
Пример
В этом примере LeagueList
представляет собой коллекцию Leagues
. Каждый League
имеет Name
и коллекцию Divisions
, и каждый Division
имеет имя и коллекцию Teams
. У каждого Team
есть имя команды.
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:SDKSample"
Width="400" Height="180"
Title="Master-Detail Binding"
Background="Silver">
<Window.Resources>
<src:LeagueList x:Key="MyList"/>
<DockPanel DataContext="{Binding Source={StaticResource MyList}}">
<StackPanel>
<Label>My Soccer Leagues</Label>
<ListBox ItemsSource="{Binding}" DisplayMemberPath="Name"
IsSynchronizedWithCurrentItem="true"/>
</StackPanel>
<StackPanel>
<Label Content="{Binding Path=Name}"/>
<ListBox ItemsSource="{Binding Path=Divisions}" DisplayMemberPath="Name"
IsSynchronizedWithCurrentItem="true"/>
</StackPanel>
<StackPanel>
<Label Content="{Binding Path=Divisions/Name}"/>
<ListBox DisplayMemberPath="Name" ItemsSource="{Binding Path=Divisions/Teams}"/>
</StackPanel>
</DockPanel>
</Window>
Ниже приведен снимок экрана примера. Автоматически Divisions
ListBox отслеживает выборы в списке Leagues
ListBox и отображает соответствующие данные. Выбранные Teams
ListBox элементы управления отслеживают два других ListBox элемента управления.
Две вещи, на которые стоит обратить внимание в этом примере, это:
Три элемента управления ListBox привязаны к одному и тому же источнику. Вы задаете свойство Path привязки, чтобы указать, какой уровень данных должен отобразить ListBox.
Вы должны задать свойство IsSynchronizedWithCurrentItem для
true
в элементах управления ListBox, для которых выполняется отслеживание выделения. Установка этого свойства гарантирует, что выбранный элемент всегда задан как CurrentItem. Кроме того, если ListBox получает данные из CollectionViewSource, он синхронизирует выбор и валюту автоматически.
Этот метод немного отличается при использовании XML-данных. Пример см. в руководстве Использование шаблона Master-Detail с иерархическими данными XML.
См. также
.NET Desktop feedback