如果不在ItemsSource中,WPF DataGridComboBoxColumn不显示文本

时间:2013-08-21 07:56:28

标签: c# wpf datagrid datagridcomboboxcolumn

在我的C#WPF应用程序中,我以编程方式将ComboBoxColumn添加到DataGrid:

public static DataGridComboBoxColumn getCboCol(string colName, Binding textBinding)
{
    List<string> statusItemsList = new StatusStrList();

    DataGridComboBoxColumn cboColumn = new DataGridComboBoxColumn();
    cboColumn.Header = colName;
    cboColumn.SelectedItemBinding = textBinding;
    cboColumn.ItemsSource = statusItemsList;

    return cboColumn;
}

如果包含DataGrid的项目包含我的StatusStrList不包含的文本,则不会显示该文本。

示例:如果我的StatusStrList包含A, B, C且DataGrid的项目包含X,则X将不会显示为文字ComboBox。

我该如何解决这个问题?

提前致谢, 基督教

1 个答案:

答案 0 :(得分:0)

DataGridComboBoxColumn动态不足以执行此类操作,但您可以使用DataGridTemplateColumn。下面的代码应该实现您需要的功能。它的工作原理是使用包含CellTemplate的{​​{1}},可以轻松显示不在TextBlock的{​​{1}}内的项目。进入编辑模式将调出包含列表中所有项目的ItemsSource

ComboBox