Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом примере показано, как реализовать сценарий 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>
Ниже приведен снимок экрана примера. Автоматически DivisionsListBox отслеживает выборы в списке LeaguesListBox и отображает соответствующие данные. Выбранные TeamsListBox элементы управления отслеживают два других ListBox элемента управления.
Две вещи, на которые стоит обратить внимание в этом примере, это:
Три элемента управления ListBox привязаны к одному и тому же источнику. Вы задаете свойство Path привязки, чтобы указать, какой уровень данных должен отобразить ListBox.
Вы должны задать свойство IsSynchronizedWithCurrentItem для
trueв элементах управления ListBox, для которых выполняется отслеживание выделения. Установка этого свойства гарантирует, что выбранный элемент всегда задан как CurrentItem. Кроме того, если ListBox получает данные из CollectionViewSource, он синхронизирует выбор и валюту автоматически.
Этот метод немного отличается при использовании XML-данных. Пример см. в руководстве Использование шаблона Master-Detail с иерархическими данными XML.
См. также
.NET Desktop feedback