gpt4 book ai didi

c# - 如何在 (WPF) DataGridComboBoxColumn 中扩展 ComboBox?

转载 作者:行者123 更新时间:2023-11-30 16:16:29 30 4
gpt4 key购买 nike

在我的 C# WPF 应用程序 (.NET 4.0) 中,我有一个由包含 DataGridComboBoxColumn 的代码动态填充的 DataGrid:

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

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

return cboColumn;
}

使用 BeginningEdit 事件执行不同的检查。

如果检查返回正常,我想直接展开组合框,否则取消编辑模式:

void dataGrid_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)
{
...
if(notOK)
e.Cancel;
else {
DataGridComboBoxColumn dgCboCol = (DataGridComboBoxColumn)e.Column;
// expand dgCboCol
}
...
}

问题:如何以编程方式扩展组合框? BeginningEdit 事件是执行此操作的正确位置吗?


答案:

void dataGrid_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs e)
{
if (e.EditingElement.GetType().Equals(typeof(ComboBox)))
{
ComboBox box = (ComboBox)e.EditingElement;
box.IsDropDownOpen = true;
}
}

最佳答案

看看this

尝试将网格上的编辑模式设置为单击,然后使用 CellClick 事件获取组合框并将其展开。

dataGrid.BeginEdit(true); 
ComboBox comboBox = (ComboBox)dataGrid.EditingControl;
comboBox.IsDropDownOpen = true;

关于c# - 如何在 (WPF) DataGridComboBoxColumn 中扩展 ComboBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252269/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com