[英]Binding DataGrid wth ComboBox (PropertyChanged, WPF, Binding)
在UserControl中,將xombo中的ComboBox填充為“ Id”項:
<ComboBox x:Name="cmbId" DisplayMemberPath="Id"/>
CS:
cmbId.ItemsSource = (from q in mydata.test_views
select q).ToList();
我正在嘗試將數據填充到DataGrid中:
<DataGrid x:Name="UGrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Auto Name" Binding="{Binding SelectedItem.AutoName, UpdateSourceTrigger=PropertyChanged, ElementName=cmbId}" Width="100"/>
<DataGridTextColumn Header="Color" Binding="{Binding SelectedItem.Color, UpdateSourceTrigger=PropertyChanged, ElementName=cmbId}" Width="100"/>
</DataGrid.Columns>
</DataGrid>
用戶在ComboBox上選擇項目后如何顯示數據“自動名稱和顏色”值?
應該將DataGrid
的ItemsSource
設置為IEnumerable<T>
。 如果只想在DataGrid
顯示單個項目,則可以處理ComboBox
的SelectionChanged
事件,並將DataGrid
的ItemsSource
屬性設置為List<T>
,該List<T>
包含ComboBox
中的選定項目:
private void cmbId_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
UGrid.ItemsSource = new List<YourEntityType> { cmbId.SelectedItem as YourEntityType };
}
<DataGrid x:Name="UGrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Auto Name" Binding="{Binding AutoName, UpdateSourceTrigger=PropertyChanged}" Width="100"/>
<DataGridTextColumn Header="Color" Binding="{Binding Color, UpdateSourceTrigger=PropertyChanged}" Width="100"/>
</DataGrid.Columns>
</DataGrid>
您需要在組合框中添加一個事件:
> <ComboBox x:Name="cmbId" DisplayMemberPath="Id" > SelectionChanged="selectionInComboboxChanged"/>
然后在selectionInComboboxChanged中,可以獲取選定的cobobox項,然后將其添加到mydata.test_views列表中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.