WPF DataGridComboBoxColumn使用(绝对良心版)

要在DataGrid中使用ComboBox,当然想到了用DataGridComboBoxColumn。

 

本来以为挺简单,结果网上看到的教程都是各种莫名其妙。然后我在这些个博客中逐个尝试,浪费了大量时间,非常窝火。。更过分的是看到一个博客内容写一些根本不能用的残缺内容,然后下面包含代码下载,竟然还要30个积分!!!!

 

最后我在微软官网找到了答案,这里我精简下DataGridComboBoxColumn的使用,希望有需要的朋友不要走弯路。。。

 

官方文档地址:

https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.datagridcomboboxcolumn?redirectedfrom=MSDN&view=netframework-4.7.2

 

 

前台代码:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:core="clr-namespace:System;assembly=mscorlib"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <ObjectDataProvider x:Key="SexEnumKey" MethodName="GetValues" ObjectType="{x:Type core:Enum}">
            <ObjectDataProvider.MethodParameters>               
                <x:Type Type="local:SexEnum"/>   
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>
    <Grid >
        <DataGrid Name="DG1" ItemsSource="{Binding}" CanUserAddRows="False" AutoGenerateColumns="False">   
            <DataGrid.Columns>
                <DataGridComboBoxColumn Header="性别"  SelectedItemBinding="{Binding sex}" ItemsSource="{Binding Source={StaticResource SexEnumKey}}" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>

 

后台代码:

namespace WpfApp1
{

    public class Customer
    {
        public SexEnum sex { get; set; }
    }
    public enum SexEnum { 男,女 };


    public partial class MainWindow : Window
    {
        ObservableCollection<Customer> custdata = new ObservableCollection<Customer>();

        public MainWindow()
        {
            InitializeComponent();

            Customer cm = new Customer();
            cm.sex = SexEnum.男;
            custdata.Add(cm);

            DG1.DataContext = custdata;

        }
    }
}

 

  • 16
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
WPFDataGridComboBoxColumn是一种用于数据网格控件的列类型,它可以显示ComboBox下拉列表,并且可以使用Converter将不同的数据进行绑定。 Converter是WPF中的一个重要概念,它可以在数据绑定过程中进行值的转换。使用Converter可以帮助我们在绑定ComboBox时,将不同的数据进行转换和展示。 使用Converter绑定不同数据的步骤如下: 1. 首先,我们需要创建一个实现了IValueConverter接口的Converter类。这个Converter类负责将源数据转换为目标数据。例如,我们可以将一个int类型的数据转换为对应的字符串类型数据。 2. 接下来,在XAML文件中创建DataGridComboBoxColumn列,并设置Binding属性为对应的数据源。可以使用ItemsSource属性来绑定ComboBox的数据源,可以使用SelectedItemBinding属性来绑定选中的项。同时,使用Converter属性将Converter类与该列的数据绑定进行关联。 3. 在Converter类中,实现Convert方法和ConvertBack方法。Convert方法用于将源数据转换为目标数据,而ConvertBack方法则用于将目标数据转换回源数据。 通过上述步骤,我们就可以实现在DataGridComboBoxColumn列中使用Converter绑定不同的数据。 总结起来,WPFDataGridComboBoxColumn通过使用Converter可以实现将不同的数据进行绑定和展示。使用Converter可以将源数据转换为目标数据,从而实现ComboBox的数据源绑定和数据项的转换。通过掌握这种使用方式,我们可以更灵活地使用DataGridComboBoxColumn列,并展示不同类型的数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值