
<DataGrid x:Name="StudentGrid" FontSize="30" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Width="1*" Header="序号" Binding="{Binding ID}"></DataGridTextColumn>
<DataGridTextColumn Width="1*" Header="姓名" Binding="{Binding Name}"></DataGridTextColumn>
<DataGridTextColumn Width="1*" Header="年龄" Binding="{Binding Age}"></DataGridTextColumn>
<DataGridComboBoxColumn x:Name="cbb_ClassSelect" Width="1*" Header="班级"
ItemsSource="{Binding }" SelectedValueBinding="{Binding ClassCode}" >
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="{x:Type ComboBox}">
<EventSetter Event="SelectionChanged" Handler="SomeSelectionChanged" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
<DataGridTemplateColumn Width="1*">
<DataGridTemplateColumn.Header >自定义班级</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox x:Name="cbb_ClassSelect_zdy" ></ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
/// <summary>
/// 页面初始(Loaded="DataGrid_Loaded")
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DataGrid_Loaded(object sender, RoutedEventArgs e)
{
List<Student> Students = new List<Student>();
Students.Add(new Student()
{
ID = "1",
Name = "张三",
Age = 12,
ClassCode = "301"
});
Students.Add(new Student()
{
ID = "2",
Name = "里斯",
Age = 12,
ClassCode = "302"
});
Students.Add(new Student()
{
ID = "3",
Name = "王五",
Age = 12,
ClassCode = "303"
});
List<ClassModle> ClassModels = new List<ClassModle>();
ClassModels.Add(new ClassModle()
{
ClassName = "三年级1班",
ClassCode = "301"
});
ClassModels.Add(new ClassModle()
{
ClassName = "三年级2班",
ClassCode = "302"
});
ClassModels.Add(new ClassModle()
{
ClassName = "三年级3班",
ClassCode = "303"
});
//这是给表格数据来源
this.StudentGrid.ItemsSource = Students;
//这是表格中的下拉框数据来源
this.cbb_ClassSelect.ItemsSource = ClassModels;
this.cbb_ClassSelect.DisplayMemberPath = "ClassName";//显示值
this.cbb_ClassSelect.SelectedValuePath = "ClassCode";//选中值
}
/// <summary>
/// 切换事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SomeSelectionChanged(object sender, SelectionChangedEventArgs e)
{
var comboBox = sender as ComboBox;
if (comboBox == null)
{
return;
}
if (comboBox.SelectedItem != null)
{
}
var selectedItem = this.StudentGrid.CurrentItem;
}