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