Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este exemplo mostra como implementar o cenário principal-detalhe.
Exemplo
Neste exemplo, LeagueList
é uma coleção de Leagues
. Cada League
tem uma Name
e uma coleção de Divisions
, e cada Division
tem um nome e uma coleção de Teams
. Cada Team
um tem um nome de equipe.
<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>
Veja a seguir uma captura de tela do exemplo. O Divisions
ListBox rastreia automaticamente as seleções no Leagues
ListBox e exibe os dados correspondentes. O Teams
ListBox rastreia as seleções nos outros dois ListBox controles.
Os dois itens a serem notados neste exemplo são:
Os três ListBox controles se associam à mesma origem. Defina a propriedade de vinculação da Path para especificar qual nível de dados deseja que o ListBox exiba.
Você deve definir a IsSynchronizedWithCurrentItem propriedade para
true
nos ListBox controles da qual você está acompanhando a seleção. Definir essa propriedade garante que o item selecionado esteja sempre definido como o CurrentItem. Como alternativa, se o ListBox receber dados de um CollectionViewSource, a seleção e a moeda serão sincronizadas automaticamente.
A técnica é ligeiramente diferente quando você está usando dados XML. Para obter um exemplo, consulte Usar o padrão Master-Detail com dados XML hierárquicos.
Consulte também
.NET Desktop feedback