2012-08-29 58 views
0

如何我在XtratTreeList有條件禁用複選框? 我有NodeChangedCustomDrawNodeCheckBox事件。禁用複選框有條件XtratTreeList

如果我使用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

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

希望這有助於;)