绑定的DataGrid问心无愧组合框(的PropertyChanged,WPF,绑定)
问题描述:
在用户控件到Xmal位具有组合框填写 “ID” 项目:绑定的DataGrid问心无愧组合框(的PropertyChanged,WPF,绑定)
<ComboBox x:Name="cmbId" DisplayMemberPath="Id"/>
CS:
cmbId.ItemsSource = (from q in mydata.test_views
select q).ToList();
我试图填补data into 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
显示单个项目,你可以处理SelectionChanged
事件的ComboBox
和DataGrid
的ItemsSource
属性设置为包含在ComboBox
中所选项目的List<T>
:
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>
+0
很酷,再次感谢您** mm8 ** :) – 4est
答
您需要在组合框中添加一个事件:
> <ComboBox x:Name="cmbId" DisplayMemberPath="Id" > SelectionChanged="selectionInComboboxChanged"/>
而在selectionInComboboxChanged中,您可以获取选定的coobobox项目,然后将其添加到mydata.test_views列表中。
你使用任何事件吗? 我会将组合框SelectedIndexChanged插入虚拟机中的变量并将数据网格绑定到它。 –
您是否试图在DataGrid中显示单个项目? – mm8
@ mm8 - 是,单个值 - 它将为选定ID的一行,包含Auto_Name和颜色值 – 4est