zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    洛谷P1026 统计单词个数【区间dp】
    洛谷P1417 烹调方案【dp】
    ArcEngine不同种类的工作空间建立查询ICursor时“超出系统资源”
    解释器模式
    设计模式6大原则简述
    访问者模式
    享元模式
    中介者模式
    职责链模式
    GridControl/GridView的分组操作
  • 原文地址:https://www.cnblogs.com/babietongtianta/p/2321241.html
Copyright © 2011-2022 走看看