看到同事有一个这样的需求,自己就写了一个小例子
如何根据DataGrid中Combox中选择的值将对应的数据显示到DataGrid中
创建了 三个数据源
List<int> SelectionList为 Combox 数据源存放于所有数据相相关联的字段值(Selection),
tb为 DataGrid数据源存放的是与Combox相关联的数据 (Age,Name,Selection),
oldtable 用于存放所有数据(Age,Name,Selection)
前台代码:
<Window x:Class="MyTestWPF.DataGridCombox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DataGridCombox" Height="276" Width="633" Loaded="Window_Loaded">
<Grid>
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}" CanUserAddRows="False" Name="dg_Grid" AreRowDetailsFrozen="False" AllowDrop="True" Margin="23,0,23,32">
<DataGrid.Columns>
<!--依赖属性绑定数据源下拉框必须同时指定EditingElementStyle、ElemengStyle才能显示下拉框中的数据-->
<DataGridComboBoxColumn Header="ComboBox模式(修正)">
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding Path=SelectionList,RelativeSource={RelativeSource AncestorType={x:Type Window},Mode=FindAncestor}}" />
<Setter Property="SelectedValue" Value="{Binding Path=Value}" />
<Setter Property="Text" Value="{Binding Selection}"/>
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
<DataGridComboBo