WPF DataGrid中的ComboBox(DataGridComboBoxColumn)渲染 以及下拉切换事件

在这里插入图片描述

 <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;
        }
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值