2017-04-13 91 views
0

在用戶控件到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

回答

1

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

0

您需要在組合框中添加一個事件:

> <ComboBox x:Name="cmbId" DisplayMemberPath="Id" 
> SelectionChanged="selectionInComboboxChanged"/> 

而在selectionInComboboxChanged中,您可以獲取選定的coobobox項目,然後將其添加到mydata.test_views列表中。