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>
  • 相关阅读:
    .Net下RabbitMQ的使用(1) 初识RabbitMQ
    Android GridView用法,用到了BaseAdapter
    android 代码布局简单的例子
    ActivityGroup的简单用法(1)详细讲解
    devc++中编译含WINSOCK的代码出现错误的解决方法
    Qt源码分析之QPointer
    QML基础——初识Qt Quick Designer
    Qt源码分析之信号和槽机制
    QML基础——UI布局管理
    Qt源码分析之QObject
  • 原文地址:https://www.cnblogs.com/babietongtianta/p/2321241.html
Copyright © 2011-2022 走看看