工作中由于客户要求一些特殊节点的某一列必须控制其可编辑状态,所以通过查阅资料和自己的实践发现可以通过以下的步骤实现这样的要求,现把代码分享一下.
首先启用TreeList的ShowingEditor事件,该事件在控件转化到可编辑状态前调用,只要设置该事件的参数CancelEventArgs即可
而对于具体是哪一个节点则可以通过TreeList的FocusedNode来获取,而对于是哪一列则可以通过TreeList的FocusedColumn来获取
而我现在的这个项目还要求结合第一列的值来进行判断,那么就通过FocusedNode的GetValue(0)方法来获取第一列的值。
写了这么多还是来看一下代码可能更明白:
private void treeList1_ShowingEditor(object sender, CancelEventArgs e)
{
if (currentTreeList != null)
{
TreeListNode node = currentTreeList.FocusedNode;
DevExpress.XtraTreeList.Columns.TreeListColumn column = currentTreeList.FocusedColumn;
if (column.FieldName == "ITEM_VALUE" && node.GetValue(0).ToString() != "")
{
e.Cancel = true;
}
else
{
e.Cancel = false;
}
}
}