2010-01-11 77 views
3

我試圖使用DataGrid,其第一列是ComboxBox。這ComboxBox有一個硬編碼的靜態值,可能值如下:Employee, Contractor, Supplier在wpf datagrid組合框列中顯示一些靜態值

我怎樣才能顯示在DataGrid一些靜態值,而不綁定到DataSource。 我是WPF的新手,所以更詳細的解釋會有所幫助。

+0

是什麼你的意思是當你說「標準網格」? – 2010-01-11 21:56:40

+0

我在哪裏說標準網格? – VNarasimhaM 2010-01-11 22:15:44

回答

11

如果你指的是WPF工具包數據網格,你可以做到這一點,像這樣:

 <dg:DataGridComboBoxColumn 
      Header="String Column" 
      SelectedItemBinding="{Binding Path=RoleProperty}"> 
      <dg:DataGridComboBoxColumn.ItemsSource> 
       <CompositeCollection> 
       <system:String>Employee</system:String> 
       <system:String>Contractor</system:String> 
       <system:String>Supplier</system:String> 
       </CompositeCollection> 
      </dg:DataGridComboBoxColumn.ItemsSource> 
     </dg:DataGridComboBoxColumn> 

在這顯示的項目有一個名爲RoleProperty的屬性。您還需要一個XNL命名空間確定指標在你的XAML的頂部(與他們的休息,如:。

xmlns:system="clr-namespace:System;assembly=mscorlib" 

讓你包括系統命名空間(以獲得訪問字符串)

+2

''會比'效率更高,並且可讀性更強 - 大多數人不知道什麼是「CompositeCollection」是的,更不用說它可以這樣使用了。在我看來,數組是一個更加簡潔的選擇。 – 2010-01-11 23:04:44

+0

極好的想法ray。我使用intellisense和composit編碼得太快e收藏首先出現。 – 2010-01-11 23:08:07

+0

給了它一個去(並在兩分鐘左右,我試過),並不能得到數組在xaml實例化,說沒有公共構造函數 – 2010-01-11 23:10:29

3

你可以只用一個標準的ComboBox與你的靜態值ComboBoxItems像這樣:

<ComboBox> 
    <ComboBoxItem>Employee</ComboBoxItem> 
    <ComboBoxItem>Contractor</ComboBoxItem> 
    <ComboBoxItem>Supplier</ComboBoxItem> 
</ComboBox>