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.
O exemplo WPFDataBinding demonstra o uso da associação de dados em um cliente do WPF (Windows Presentation Foundation). O exemplo usa um serviço WCF (Windows Communication Foundation) que gera aleatoriamente uma matriz de álbuns para retornar ao cliente. Cada álbum tem um nome, um preço e uma lista de faixas de álbum. As faixas do álbum têm um nome e duração. As informações retornadas pelo serviço são automaticamente associadas à interface do usuário fornecida pelo cliente do WPF (Windows Presentation Foundation).
Observação
O procedimento de instalação e as instruções de build para este exemplo estão localizados no final deste tópico.
A associação de dados permite que uma fonte de dados seja automaticamente associada a uma interface do usuário. Isso simplifica o modelo de programação porque ele não exige que você atualize programaticamente cada elemento de interface do usuário com os dados de um objeto de dados ou uma matriz de objetos de dados. Você pode associar um objeto a um único elemento de interface do usuário ou a uma matriz a um controle que usa várias entradas, como um ListBox. O código a seguir mostra como associar dados a um elemento de interface do usuário DataContext.
// Event handler executed when call is complete
void client_GetAlbumListCompleted(object sender, GetAlbumListCompletedEventArgs e)
{
// This is on the UI thread, myPanel can be accessed directly
myPanel.DataContext = e.Result;
}
No exemplo anterior, o DataContext do elemento de layout grid chamado myPanel é definido como os dados retornados pelo método GetAlbumList. Os DataContext elementos permitem herdar informações de seus elementos pai sobre a fonte de dados usada para associação, bem como outras características da associação, como o caminho. A linha de código deve ser executada sempre que os dados no servidor forem atualizados. Por exemplo, ele é executado quando a janela é inicializada e quando um novo álbum é adicionado.
No código XAML de exemplo a seguir, o ListBox especifica ItemsSource="{Binding }".
<ListBox
ItemTemplate="{StaticResource AlbumStyle}"
ItemsSource="{Binding }"
IsSynchronizedWithCurrentItem="true" />
Isso especifica que os dados associados ao elemento de interface do usuário de nível superior também estão associados a esse controle (ou seja, a matriz de Álbuns). Além disso, ItemTemplate="{StaticResource AlbumStyle}" especifica o modelo de dados a ser usado para cada item no ListBox. Você também pode definir modelos de dados para especificar como os dados devem ser formatados. Esses modelos de dados podem ser reutilizados para outros elementos de interface do usuário no aplicativo, a vantagem é que o modelo de dados é definido e mantido em um só lugar.
O modelo de dados AlbumStyle estabelece uma grade com dois TextBlocks lado a lado. Um especifica o nome do álbum e outro o número de faixas no álbum.
<DataTemplate x:Key="AlbumStyle">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="260" />
<ColumnDefinition Width="60" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" TextContent="{Binding Path=Title}" />
<TextBlock Grid.Column="1" TextContent="{Binding Path=Tracks#.Count}" HorizontalAlignment="Right" />
</Grid>
</DataTemplate>
O código XAML a seguir cria um segundo ListBox.
<ListBox Grid.Row="2"
Grid.ColumnSpan="2"
ItemTemplate="{StaticResource TrackStyle}"
ItemsSource="{Binding Path=Tracks}" />
O código especifica um caminho para o ItemsSource. Isso indica que os dados associados a esse controle não são os dados de nível superior, mas uma propriedade dos dados de nível superior chamados Tracks. Essa propriedade representa a matriz de faixas contidas no álbum. Além disso, um DataTemplate diferente nomeado TrackStyle é especificado. O layout do TrackStyle modelo é semelhante ao do AlbumStyle modelo, mas os TextBlocks são associados a propriedades diferentes. Isso ocorre porque os dois modelos são usados com objetos de dados diferentes.
Para configurar, compilar e executar o exemplo
Verifique se você executou o Procedimento de instalação avulsa dos exemplos do Windows Communication Foundation.
Para compilar a edição .NET do C# ou do Visual Basic da solução, siga as instruções contidas em Como Compilar as Amostras do Windows Communication Foundation.
Para executar o exemplo em uma configuração única ou entre máquinas, siga as instruções em Executando os exemplos do Windows Communication Foundation.