使用ComboBox绑定DataGrid(PropertyChanged,WPF,Binding)

时间:2017-04-13 10:10:31

标签: c# wpf xaml data-binding datagrid

在UserControl上进入xmal有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上的项目后显示数据“自动名称和颜色”值?

2 个答案:

答案 0 :(得分:1)

ItemsSource的{​​{1}}应该设置为DataGrid。如果您只想在IEnumerable<T>中显示单个项目,则可以处理DataGrid的{​​{1}}事件并设置SelectionChanged的{​​{1}}属性到包含ComboBox中所选项目的ItemsSource

DataGrid
List<T>

答案 1 :(得分:0)

您需要在组合框中添加一个事件:

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

在selectionInComboboxChanged中,您可以获取所选的cobobox项目,然后将其添加到mydata.test_views列表中。