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>
  • 相关阅读:
    自己奋斗才有用,人要坚持到成功为止
    自己需要的都是靠自己争取,人生只有自己才靠得住
    不如意也是要过日子,人是不可能和天斗的
    懂得满足也是好的,人要学会知足才会感到幸福
    不要让自己有后悔的时候,人都是要不负自己的青春年少
    ES6 の 块级作用域
    javascript中this的指向分析
    let & var 的区别
    npm 全局安装环境配置
    visibilitychange => 获取页面的可见性
  • 原文地址:https://www.cnblogs.com/babietongtianta/p/2321241.html
Copyright © 2011-2022 走看看