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>

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM