Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Como: associar aos resultados de uma consulta LINQ

 

Publicado: junho de 2016

Este exemplo demonstra como executar uma consulta LINQ e então associar aos resultados.

Exemplo

O exemplo a seguir cria dois objetos ListBox. A primeira caixa de listagem contém três itens de lista.

<ListBox SelectionChanged="ListBox_SelectionChanged"
         SelectedIndex="0" Margin="10,0,10,0" >
    <ListBoxItem>1</ListBoxItem>
    <ListBoxItem>2</ListBoxItem>
    <ListBoxItem>3</ListBoxItem>
</ListBox>
<ListBox Width="400" Margin="10" Name="myListBox"
         HorizontalContentAlignment="Stretch"
         ItemsSource="{Binding}"
         ItemTemplate="{StaticResource myTaskTemplate}"/>

Selecionar um item da primeira ListBox invoca o seguinte manipulador de eventos. Neste exemplo, Tasks é uma coleção de Task objetos. O Task classe tem uma propriedade chamada Priority. Esse manipulador de eventos executa uma consulta LINQ que retorna a coleção de Task objetos que têm o valor de prioridade selecionada e, em seguida, define que, como o DataContext:

using System.Linq;
Tasks tasks = new Tasks();
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    int pri = Int32.Parse(((sender as ListBox).SelectedItem as ListBoxItem).Content.ToString());

    this.DataContext = from task in tasks
                       where task.Priority == pri
                       select task;
}

A segunda caixa de listagem associado a essa coleção porque seu ItemsSource valor é definido como {Binding}. Como resultado, ele exibe a coleção retornada (com base no myTaskTemplateDataTemplate).

Mostrar: