有条件地禁用XtratTreeList复选框

时间:2012-08-29 15:42:07

标签: c# devexpress xtratreelist

如何在XtratTreeList中有条件地禁用复选框? 我有NodeChangedCustomDrawNodeCheckBox个事件。

如果我使用的treeList1_CustomDrawNodeCell事件只给我一个节点。 即。

using DevExpress.XtraTreeList;
using DevExpress.Utils.Drawing;
using DevExpress.XtraEditors.ViewInfo;
//...
void treeList1_CustomDrawNodeCell(object sender, CustomDrawNodeCellEventArgs e) {
    CheckEditViewInfo editViewInfo = e.EditViewInfo as CheckEditViewInfo;
    if (editViewInfo == null) 
        return;
    editViewInfo.CheckInfo.State = ObjectState.Disabled;
}

我有节点之间的关系。如果用户检查一个节点,则只允许检查/启用与该节点相关的节点。

1 个答案:

答案 0 :(得分:1)

Devexpress没有直接的方法来做到这一点,所以,你需要做下面的事情:

要相应更改其外观,请处理CustomDrawNodeCheckBox event

private void treeList1_CustomDrawNodeCheckBox(object sender, CustomDrawNodeCheckBoxEventArgs e)
{
    //Your condition
    e.ObjectArgs.State = ObjectState.Disabled;
}

要阻止检查特定复选框,请处理BeforeCheckNode event

private void treeList1_BeforeCheckNode(object sender, CheckNodeEventArgs e)
{
    //Your condition
    e.CanCheck = false;
}

希望这个帮助;)