Condividi tramite


Procedura: eseguire l'associazione ai risultati di una query LINQ

In questo esempio viene illustrato come eseguire una query LINQ e successivamente eseguire l'associazione ai risultati ottenuti.

Esempio

Nell'esempio seguente vengono create due caselle di riepilogo. La prima casella di riepilogo contiene tre voci di elenco.

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

Selezionando un elemento dalla prima casella di riepilogo viene richiamato il seguente gestore eventi. In questo esempio, Tasks è un insieme di oggetti Task. La classe Task dispone di una proprietà denominata Priority. Questo gestore eventi esegue una query LINQ che restituisce l'insieme di oggetti Task con il valore di priorità selezionato, che viene quindi impostato come DataContext:

Imports System.Linq


...


        Private tasks As New Tasks()


...


        Private Sub ListBox_SelectionChanged(ByVal sender As Object, ByVal e As SelectionChangedEventArgs)
            Dim pri As Integer = Int32.Parse((TryCast((TryCast(sender, ListBox)).SelectedItem, ListBoxItem)).Content.ToString())

            Me.DataContext = From task In tasks
                             Where task.Priority = pri
                             Select task
        End Sub
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;
}

La seconda casella di riepilogo esegue l'associazione a tale insieme perché il valore di ItemsSource è impostato su {Binding}. Di conseguenza visualizza l'insieme restituito, in base a myTaskTemplateDataTemplate.

Vedere anche

Attività

Procedura: rendere i dati disponibili per l'associazione in XAML

Procedura: eseguire l'associazione di un insieme e visualizzare informazioni in base alla selezione effettuata

Concetti

Novità di WPF versione 4

Cenni preliminari sull'associazione dati

Altre risorse

Procedure relative all'associazione dati