Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este ejemplo se muestra cómo ejecutar una consulta LINQ y, a continuación, enlazar a los resultados.
Ejemplo
En el ejemplo siguiente se crean dos cuadros de lista. El primer cuadro de lista contiene tres elementos de lista.
<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}"/>
Al seleccionar un elemento del primer cuadro de lista, se invoca el controlador de eventos siguiente. En este ejemplo, Tasks es una colección de objetos Task. La clase Task tiene una propiedad denominada Priority. Este controlador de eventos ejecuta una consulta LINQ que devuelve la colección de objetos Task que tienen el valor de prioridad seleccionado y, a continuación, los establece como 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;
}
El segundo cuadro de lista enlaza a esa colección porque su valor de ItemsSource está establecido en {Binding}. Como resultado, muestra la colección devuelta (en función de myTaskTemplateDataTemplate).
Vea también
Tareas
Cómo: Hacer que los datos estén disponibles para el enlace en XAML
Cómo: Enlazar a una colección y mostrar información basada en la selección
Conceptos
Información general sobre el enlace de datos