Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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