[英]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.