• WPF DataGrid 中的DataGridComboBoxColumn 使用


    步骤一、新建枚举类型

    public enum WeightUnits { 克,斤,公斤,千克,吨,毫克 };

    步骤二、在资源中创建 数据提供者

    <UserControl x:Class="XXXXView"
    xmlns:core="clr-namespace:System;assembly=mscorlib"

    xmlns:local="clr-namespace:<枚举所在的命名空间>"
    />

    <UserControl.Resources>


    <ObjectDataProvider x:Key="myEnum" MethodName="GetValues" ObjectType="{x:Type core:Enum}">
    <ObjectDataProvider.MethodParameters>
    <x:Type Type="local:WeightUnits"/>
    </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>

    </UserControl.Resources>

    之前要生命一些XML空间

    xmlns:core="clr-namespace:System;assembly=mscorlib"
    xmlns:local="clr-namespace:Qtrunk.Modules.SiteManagement"

    步骤三、在DataGrid中标记

    <DataGridComboBoxColumn Header="辅助单位"
    TextBinding ="{Binding SubAssistUnitName}"
    ItemsSource="{Binding Source={StaticResource myEnum}}"
    >

    </DataGridComboBoxColumn>

    对比了网上的许多片段,感觉这种方式虽然算不上完美的解决方案,不过还算简单可行。

    主要参考资料

    微软官方的MSDN

    http://msdn.microsoft.com/zh-cn/library/system.windows.controls.datagridcomboboxcolumn.aspx

     -----------------------------------------------------------------------------------------------------------

    2013-06-19 补充方法

    -------------------------------------------------------------------------------------------------------------

     <DataGrid x:Name="gridEmployers" AutoGenerateColumns="False" ItemsSource="{Binding}" DataContext="{Binding}">                    
    
        --------------- 省略
      <DataGridTemplateColumn.CellEditingTemplate>
                            <DataTemplate>
                                <ComboBox Text="{Binding Name}"
                                              IsEditable="True"
                                              DisplayMemberPath="Name"
                                              ItemsSource="{Binding Source={StaticResource employers}}"
                                              />
                             </DataTemplat>
    </DataGridTemplateColumn.CellEditingTemplate> --------------省略   </DataGrid>
    <Window.Resources> <ObjectDataProvider x:Key="employers" ObjectType="{x:Type local:_2011_12_28_01_Data}" MethodName="GetEmployers"/> </Window.Resources>
  • 相关阅读:
    (转)android
    (转)Eclipse 扩大内存
    (转)setTextColor()的参数设置方式
    RelativeLayout里的gravity不能居中的解决方法
    hdu1010 Tempter of the Bone
    ubuntu系统下如何禁用笔记本触摸板
    十滴水,半成品,大多数关卡可以过去,不过也有几个过不去,仍在调试中,不断更新
    HDU1007 TLE代码和AC代码对比
    hdu1013
    1005 矩阵快速幂
  • 原文地址:https://www.cnblogs.com/babietongtianta/p/2321241.html
Copyright © 2020-2023  润新知