2010-01-11 8 views
3

Je suis en train d'utiliser un DataGrid dont la première colonne est un ComboxBox. Cette ComboxBox a une valeur statique hardcoded, les valeurs possibles sont: Employee, Contractor, Supplierafficher certaines valeurs statiques dans WPF DataGrid colonne combobox

Comment puis-je montrer des valeurs statiques dans le DataGrid sans se lier à un DataSource. Je suis nouveau à WPF explication plus détaillée afin d'aider.

+0

Que dit le vous voulez dire quand vous dites « grille standard » –

+0

où j'ai dit grille standard – VNarasimhaM

Répondre

11

si vous voulez parler de la boîte à outils WPF DataGrid, vous pourriez le faire comme ceci:

 <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> 

dans les éléments affichés ont une propriété appelée RoleProperty. vous aurez également besoin d'un espace de noms XNL défintion en haut de votre XAML (avec le reste d'entre eux comme:.

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

pour vous permettre d'inclure l'espace de noms de système (pour accéder aux cordes)

+2

'' serait beaucoup plus efficace que '', et plus facile à lire aussi - la plupart des gens ne savent pas ce qu'est un 'CompositeCollection' est, et encore moins qu'il puisse être utilisé de cette façon. un tableau est un choix beaucoup plus propre à mon avis. –

+0

excellente idée ray. i codait trop vite à l'aide IntelliSense et Composit La collection est apparue en premier. –

+0

il a donné un coup (et dans les deux minutes ou si je l'ai essayé) et ne pouvions pas y instancié tableau en XAML, dit quelque chose au sujet de pas de constructeur public –

3

Vous pouvez simplement utiliser un ComboBox standard avec vos valeurs statiques ComboBoxItems comme ceci:

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