欢迎光临
我的个人博客网站

wpf之DataGrid绑定DataTable,其中DataGridComboBoxColumn双向绑定枚举enum

百度了快一天,没结果,除了几个原创的,都是复制粘贴的内容。

不想用别的笨办法,于是脑洞大开,想出了我的办法。

 

首先是前台代码,与网上的比较类似:

        xmlns:jz="clr-namespace:*****.Model;assembly=****"
    xmlns:utils="clr-namespace:*******.util" xmlns:core="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d" Title="数据项管理" Height="500" Width="700" Name="window" WindowStartupLocation="CenterScreen" WindowStyle="ToolWindow"> <Window.Resources> <utils:SoftDataFormatConverter x:Key="SoftDataFormatConverter"/> <ObjectDataProvider x:Key="SoftDataFormatEnumKey" MethodName="GetValues" ObjectType="{x:Type core:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type Type="jz:SoftDataFormat"/> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> </Window.Resources>

<DataGridComboBoxColumn Header="数据类型" ItemsSource="{Binding Source={StaticResource SoftDataFormatEnumKey}}" SelectedItemBinding="{Binding SoftDataFormat, Converter={StaticResource SoftDataFormatConverter}, Mode=TwoWay}"/>

我的DataGrid绑定的是DataTable,然后,DataGridComboBoxColumn 绑定中的 【SelectedItemBinding=”{Binding SoftDataFormat】,要注意大小写,被坑了一阵子。

接下来是百度不到的“核心科技”:

namespace *****.util {     [ValueConversion(typeof(int), typeof(SoftDataFormat))]     public class SoftDataFormatConverter : IValueConverter     {         public object Convert(object value, Type targetType, object parameter, CultureInfo culture)         {             if (int.TryParse(value.ToString(), out int vInt))             {                 return (SoftDataFormat)vInt;             }             else             {                 return (SoftDataFormat)Enum.Parse(typeof(SoftDataFormat), value.ToString());             }         }          public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)         {             throw new NotImplementedException();         }     } }
赞(0) 打赏
未经允许不得转载:张拓的天空 » wpf之DataGrid绑定DataTable,其中DataGridComboBoxColumn双向绑定枚举enum
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏