如何:繫結至 LINQ 查詢結果
此範例示範如何執行 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}
。 因此,它會顯示傳回的集合(根據 )。 myTaskTemplate
DataTemplate
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應