Поделиться через


Практическое руководство. Привязка к результатам запроса LINQ

Обновлен: Ноябрь 2007

Этот пример демонстрирует способ запуска запрос LINQ и последующую привязку к результатам.

Пример

В следующем примере создается два списка. Первое поле списка содержит три элемента списка.

<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}"/>

При выделении элемента в первом раскрывающемся списке вызывается следующий обработчик событий. В этом примере Tasks представляет собой коллекцию объектов Task. Класс Task имеет свойство с именем Priority. Этот обработчик событий запускает запрос LINQ, возвращающий коллекцию объектов Task, которые имеют значение выбранного приоритета, а затем устанавливающий их как 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;
}

Второй список привязывается к этой коллекции, так его значение ItemsSource установлено в {Binding}. В результате отображается возвращаемая коллекция (основанная на myTaskTemplateDataTemplate). Полный пример содержится в разделе Пример использования запроса LINQ.

См. также

Задачи

Практическое руководство. Обеспечение доступности данных для привязки в XAML

Практическое руководство. Выполнение привязки к коллекции и вывод сведений в зависимости от выделенного элемента

Основные понятия

Новые возможности в Windows Presentation Foundation 3.5

Общие сведения о связывании данных

Другие ресурсы

Примеры привязки данных

Практические руководства по привязке данных