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
Concetti
Cenni preliminari sull'associazione dati