如何设置CheckEdit单元格的值
本文关键字:CheckEdit 单元格 设置 何设置 | 更新日期: 2023-09-27 18:05:40
我正在使用DevExpress WinForms XtraTreeList控件,并且有几个包含复选框的列,即我已经将列的ColumnEdit属性设置为RepositoryCheckEdit。
如何通过编程方式访问特定CheckEdit单元格的值并将其设置为True/False?
对于文本单元格,我使用TreeListNode[index] = "string"(这与TreeListNode相同)。SetValue(index, "string")),但TreeListNode[index] = boolean似乎对CheckEdit单元格没有影响。
如果您知道您引用的索引实际上是CheckEdit或RepositoryCheckEdit,则将其转换为这样。
如下:
(TreeListNode[index] as CheckEdit).Checked = true;
我显然建议在尝试分配它之前先检查它是否为null,但这只是为了给您展示。
如果你想为整个列设置Checked属性,看看这个。你必须编写一个易于实现的自定义迭代器。但是迭代的方式有点奇怪。
如果您只想为特定的TreeListNode项设置Checked属性,希望下面的内容有所帮助。
TreeListNode node;
node.CheckState = CheckState.Checked;
结果这两个建议都不起作用。下面是我解决这个问题的方法。
对于要显示CheckBox的列单元格,我没有将ColumnEdit属性设置为RepositoryCheckEdit,而是将列的UnboundType设置为Boolean,即:
TreeListColumn.UnboundType = DevExpress.XtraTreeList.Data.UnboundColumnType.Boolean;
然后,为了设置checkit的值:
TreeListNode[index] = true; //false
PS -我相信其他方法没有工作的原因是RepositoryItemCheckEdit。显然,在这种情况下(我还没有找到)还有其他方法可以设置CheckEdit值。
谢谢你的兴趣和建议。
可以:
DevExNodes.TreeListNode node = this.treeList1.FindNodeByID(nodeId);
DevExColumns.TreeListColumn column = this.treeList1.Columns.ColumnByName(columnName);
node.SetValue(column, true);
this.treeList1.RefreshCell(node, column);
并且在CustomNodeCellEdit(object sender, DevExpress.XtraTreeList.GetCustomNodeCellEditEventArgs e)
事件中将默认单元格替换为DevExRepos.RepositoryItemCheckEdit
单元格:
DevExRepos.RepositoryItemCheckEdit checkEdit = new DevExRepos.RepositoryItemCheckEdit();
checkEdit.ValueChecked = true;
checkEdit.ValueUnchecked = false;
e.RepositoryItem = checkEdit;