XtraTreeList - 如何将Unbound Boolean Cell的值重置为Indeterminate?

时间:2011-08-30 11:45:46

标签: c# winforms devexpress xtratreelist

我有一个XtraTreeList,其UnboundColumn类型为Boolean,即:

column.UnboundType = DevExpress.XtraTreeList.Data.UnboundColumnType.Boolean;

最初,所有CheckEdits在Indeterminate State中显示为“灰色”,其值为Null。

有什么办法可以将特定复选框的值重置为此Indeterminate状态吗?

我试过了:

treeListNode[columnID] = null;

但会弹出一个错误消息框,并显示以下消息:“无法将Null对象转换为值类型。”

另外:

treeListNode[columnID] = DefaultBoolean.Default;

和:

treeListNode[columnID] = CheckState.Indeterminate;

但都将单元格的值设置为True。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

不确定这是否仍然对您有所帮助,但您可以尝试的另一种方法是将未绑定的列类型设置为object并稍后将其还原。

foreach (var column in treeListNode.Columns)
{
    var tc= column as TreeListColumn;
    if (tc!= null && tc.Name == columnID)
    {
        var originalType = tc.UnboundType;
        tc.UnboundType = UnboundColumnType.Object;
        treeListNode[columnID] = null;                             
        tc.UnboundType = originalType;
        break;
    }
}

答案 1 :(得分:0)

尝试:

treeListNode[columnID] = DBNull.Value

但我不确定它是否有效,最终我们必须手动设置CheckEdit的状态。