我正在尝试使用一个DataGrid
,其第一列是一个ComboxBox
。这个ComboxBox
有硬编码的静态值,可能的值为:Employee, Contractor, Supplier
如何在DataGrid
中显示一些静态值,而不绑定到DataSource
。
我对WPF还很陌生,更详细的解释会有所帮助。
我正在尝试使用一个DataGrid
,其第一列是一个ComboxBox
。这个ComboxBox
有硬编码的静态值,可能的值为:Employee, Contractor, Supplier
如何在DataGrid
中显示一些静态值,而不绑定到DataSource
。
我对WPF还很陌生,更详细的解释会有所帮助。
如果你指的是WPF Toolkit DataGrid,你可以这样做:
<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的属性。你还需要在XAML顶部添加一个XML命名空间定义(与其他命名空间一起,如:
xmlns:system="clr-namespace:System;assembly=mscorlib"
让您包含系统命名空间。(以便访问字符串)
<x:Array>
比<CompositeCollection>
更高效,而且更易读——大多数人不知道什么是CompositeCollection
,更不用说它可以用这种方式了。使用数组是一个更清晰的选择。 - Ray Burns<ComboBox>
<ComboBoxItem>Employee</ComboBoxItem>
<ComboBoxItem>Contractor</ComboBoxItem>
<ComboBoxItem>Supplier</ComboBoxItem>
</ComboBox>