【问题标题】:show some static values in wpf datagrid combobox column在 wpf datagrid 组合框列中显示一些静态值
【发布时间】:2011-01-03 22:41:19
【问题描述】:

我正在尝试使用DataGrid,其第一列是ComboxBox。这个ComboxBox 有一个硬编码的静态值,可能的值是:Employee, Contractor, Supplier

如何在DataGrid 中显示一些静态值而不绑定到DataSource。 我是 WPF 的新手,所以更详细的解释会有所帮助。

【问题讨论】:

  • 你说的“标准网格”是什么意思?
  • 我在哪里说标准网格?

标签: c# wpf datagrid datagridcomboboxcolumn


【解决方案1】:

如果你指的是 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 的属性。你还需要在你的 xaml 顶部有一个 xnl 命名空间定义(其余的像:

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

让您包含系统命名空间。 (访问字符串)

【讨论】:

  • &lt;x:Array&gt; 将比&lt;CompositeCollection&gt; 更高效,而且可读性也更强——大多数人不知道CompositeCollection 是什么,更不用说它可以这样使用了。在我看来,数组是一个更干净的选择。
  • 优秀的想法射线。我使用智能感知编码速度太快,首先出现了复合集合。
  • 试一试(在两分钟左右的时间里,我尝试了)并且无法在 xaml 中实例化数组,说了一些关于没有公共构造函数的事情
【解决方案2】:

您可以像这样使用带有静态值的标准 ComboBox 作为 ComboBoxItems:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2013-09-30
    • 2015-09-18
    • 1970-01-01
    • 2012-11-30
    相关资源
    最近更新 更多