0

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

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

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;
}

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

4

1 回答 1

2

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;
}

希望这有帮助;)

于 2012-08-30T08:56:30.643 回答