Procedura: eseguire l'associazione ai risultati di una query LINQHow to: Bind to the Results of a LINQ Query

In questo esempio viene illustrato come eseguire una query LINQ e associare quindi i risultati.This example demonstrates how to run a LINQ query and then bind to the results.

EsempioExample

L'esempio seguente crea due caselle di riepilogo.The following example creates two list boxes. Prima casella di riepilogo contiene tre voci di elenco.The first list box contains three list items.

<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}"/>

Selezione di un elemento dalla casella di riepilogo prima richiama il seguente gestore eventi.Selecting an item from the first list box invokes the following event handler. In questo esempio, Tasks è una raccolta di Task oggetti.In this example, Tasks is a collection of Task objects. Il Task classe dispone di una proprietà denominata Priority.The Task class has a property named Priority. Questo gestore eventi viene eseguita una query LINQ che restituisce la raccolta di Task gli oggetti che hanno il valore di priorità selezionata e quindi imposta come il DataContext:This event handler runs a LINQ query that returns the collection of Task objects that have the selected priority value, and then sets that as the 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;
}

Seconda casella di riepilogo viene associata a tale raccolta, in quanto il relativo ItemsSource è impostato su {Binding}.The second list box binds to that collection because its ItemsSource value is set to {Binding}. Di conseguenza, Visualizza la raccolta restituita (in base il myTaskTemplate DataTemplate).As a result, it displays the returned collection (based on the myTaskTemplateDataTemplate).

Vedere ancheSee Also

Rendere i dati disponibili per l'associazione in XAMLMake Data Available for Binding in XAML
Eseguire l'associazione a una raccolta e visualizzare informazioni in base alla selezioneBind to a Collection and Display Information Based on Selection
Novità di WPF versione 4.5What's New in WPF Version 4.5
Panoramica sul data bindingData Binding Overview
Procedure relative alle proprietàHow-to Topics