【问题标题】:WPF Datagrid Combobox XAML and CodebehindWPF Datagrid Combobox XAML 和代码隐藏
【发布时间】:2012-07-13 08:06:33
【问题描述】:

由于我是 WPF 的初学者,我有一个可能是基本性质的问题。

我有一个带有组合框的数据网格。

我写的xaml是:

<DataGridComboBoxColumn Header="ControlOption" Width="100"
       SelectedItemBinding="{Binding Path=DataGridComboxBox_Control}">
    <DataGridComboBoxColumn.ItemsSource>
        <col:ArrayList>
            <sys:String>Database1</sys:String>
            <sys:String>DataBase2</sys:String>
        </col:ArrayList>
    </DataGridComboBoxColumn.ItemsSource>
</DataGridComboBoxColumn>

我有 3 个值,它们应该在组合框的下拉列表中。 1.工作流1 2.工作流2 3.工作流3

现在我如何为 ComboxBox 编写代码隐藏。 请在这方面给我指点。 :)

非常感谢。

阿苏托什

【问题讨论】:

  • 你的问题不清楚,你到底想在代码后面做什么?
  • 我对我的帖子进行了编辑,指出组合框的下拉列表中需要有 3 个值。

标签: c# .net wpf xaml wpfdatagrid


【解决方案1】:

对不起,还没有完全理解你。您想从后面的代码中替换组合框的 itemssource 吗? 在这种情况下,您可以将组合框的 ItemsSource 绑定到属性。像这样:

<Controls:DataGridComboBoxColumn Header="Gender" ItemsSource="{Binding Path=Genders}" />

后面的代码会很像

    public ObservableCollection<string> Genders
    {
        get {
            return _genders;
        }
        set { _genders = value;
            PropertyChanged(this, new PropertyChangedEventArgs("Genders"));
        }
    }

如果你的意思是别的,请解释一下。可能是我理解错了

【讨论】:

  • 正如我之前提到的。对 Combobox 列的 ItemsSource 使用绑定。 ObservableCollection 通知集合何时更改。所以,如果你想设置新值,你可以调用 Genders.Clear() 方法并添加新值(WorksStreams)
  • 感谢 Artiom :) 明白了,需要同样的。
【解决方案2】:

使用 datagrid_PreviewKeyDown 函数来捕捉网格中的按键。如果单元格集中使用 datagrid.BeginEdit() 将单元格从文本块转换为组合框。 我认为这将有助于解决问题。

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多