Cómo: Enlazar a los resultados de una consulta LINQ

Actualización: noviembre 2007

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:

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). Para obtener el ejemplo completo, vea Ejemplo LINQ Query.

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

Lo nuevo en Windows Presentation Foundation versión 3.5

Información general sobre el enlace de datos

Otros recursos

Ejemplos de enlace de datos

Temas "Cómo..." sobre enlace de datos