Gewusst wie: Binden an die Ergebnisse einer LINQ-Abfrage
Aktualisiert: November 2007
In diesem Beispiel wird veranschaulicht, wie Sie eine LINQ-Abfrage ausführen und dann eine Bindung an die Ergebnisse vornehmen.
Beispiel
Im folgenden Beispiel werden zwei Listenfelder erstellt. Das erste Listenfeld enthält drei Listenelemente.
<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}"/>
Wenn Sie im ersten Listenfeld ein Element auswählen, wird der folgende Ereignishandler aufgerufen. In diesem Beispiel steht Tasks für eine Auflistung von Task-Objekten. Die Task-Klasse verfügt über eine Eigenschaft namens Priority. Dieser Ereignishandler führt eine LINQ-Abfrage aus, die die Auflistung von Task-Objekten zurückgibt, die den ausgewählten Prioritätswert haben. Anschließend wird der Wert als DataContext festgelegt:
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;
}
Das zweite Listenfeld wird an diese Auflistung gebunden, da der ItemsSource-Wert auf {Binding} festgelegt ist. Als Ergebnis wird die zurückgegebene Auflistung angezeigt (basierend auf myTaskTemplateDataTemplate). Das vollständige Beispiel finden Sie unter Beispiel für LINQ-Abfrage.
Siehe auch
Aufgaben
Gewusst wie: Bereitstellen von Daten, um diese in XAML zu binden
Gewusst wie: Binden an eine Auflistung und Anzeigen von Informationen auf Grundlage der Auswahl
Konzepte
Neues in Windows Presentation Foundation Version 3.5