前台代码:
<DataGrid Name="_dg_DataGrid" RowHeaderWidth="0" AutoGenerateColumns="False" CanUserSortColumns="False" CanUserAddRows="False" CanUserResizeColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="列名" Width="auto">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<ComboBox Name="控件Name" Width="110" Margin="0"
InputMethod.IsInputMethodEnabled="False"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center" SelectedIndex="0"></ComboBox>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
后台代码:
_dg_DataGrid.CommitEdit();
for (int k = 0; k < _dg_DataGrid.Items.Count; k++)
{
//首先获取DataGridTemplateColumn所在列
DataGridTemplateColumn componentType_tempColumn = this._dg_DataGrid.Columns.Where(r => r.Header.Equals("列名")).FirstOrDefault() as DataGridTemplateColumn;
//然后获取DataGridTemplateColumn单元格元素
FrameworkElement componentType_element = componentType_tempColumn.GetCellContent(this._dg_DataGrid.Items[k]);
if (componentType_element != null)//构件类型
{
//把单元格元素转换为相应的控件,再从该控件中取值
ComboBox componentType = componentType_tempColumn.CellTemplate.FindName("控件Name", componentType_element) as ComboBox;
}
}