绑定的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上选择项目后的颜色“值?

+0

你使用任何事件吗? 我会将组合框SelectedIndexChanged插入虚拟机中的变量并将数据网格绑定到它。 –

+0

您是否试图在DataGrid中显示单个项目? – mm8

+0

@ mm8 - 是,单个值 - 它将为选定ID的一行,包含Auto_Name和颜色值 – 4est

DataGridItemsSource应该设置为IEnumerable<T>。如果你只是想在DataGrid显示单个项目,你可以处理SelectionChanged事件的ComboBoxDataGridItemsSource属性设置为包含在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列表中。