Postupy: Připojení k výsledkům dotazu LINQ
Tento příklad ukazuje, jak spustit dotaz LINQ a pak vytvořit vazbu na výsledky.
Příklad
Následující příklad vytvoří dvě seznamová pole. První seznam obsahuje tři položky seznamu.
<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}"/>
Při výběru položky z prvního seznamu se vyvolá následující obslužná rutina události. V tomto příkladu Tasks
je kolekce Task
objektů. Třída Task
má vlastnost s názvem Priority
. Tato obslužná rutina události spustí dotaz LINQ, který vrátí kolekci Task
objektů, které mají vybranou hodnotu priority, a pak nastaví tuto hodnotu jako 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;
}
Druhý seznam vytvoří vazbu na tuto kolekci, protože její ItemsSource hodnota je nastavena na {Binding}
. V důsledku toho zobrazí vrácenou kolekci (na základě ).myTaskTemplate
DataTemplate
Viz také
.NET Desktop feedback