Gewusst wie: Binden an die Ergebnisse einer LINQ-Abfrage
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:
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;
}
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).
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