XtraTreeList - Как я могу установить значение ячейки CheckEdit?

Я использую элемент управления DevExpress WinForms XtraTreeList, и у меня есть несколько столбцов, которые содержат флажок, т.е. я установил для свойства ColumnEdit столбцов значение RepositoryCheckEdit.

Как я могу программно получить доступ к значению конкретной ячейки CheckEdit и установить для него значение True/False?

Для текстовых ячеек я использовал TreeListNode [index] = "string" (что совпадает с TreeListNode.SetValue (index, "string")), но TreeListNode[index] = boolean, похоже, не влияет на ячейку CheckEdit.

Любая помощь приветствуется.

4 ответа

Решение

Оказывается, ни одно из предложений не сработало. Вот что я сделал, чтобы решить проблему.

Чтобы в ячейках столбца отображался CheckBox, вместо того, чтобы устанавливать для свойства ColumnEdit значение RepositoryCheckEdit, я установил в столбце UnboundType значение Boolean, то есть:

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

Затем, чтобы установить значение CheckEdit:

TreeListNode[index] = true; //false

PS - Я считаю, что другие методы не работали, потому что RepositoryItemCheckEdit. Очевидно, есть другой способ установить значение CheckEdit, когда это так (который я не смог найти).

Спасибо за интерес и предложения.

Если вы знаете, что индекс, на который вы ссылаетесь, на самом деле является CheckEdit или RepositoryCheckEdit, приведите его в качестве такового.

Вдоль этих линий:

(TreeListNode[index] as CheckEdit).Checked = true;

Очевидно, я бы порекомендовал проверить, является ли он нулевым, прежде чем пытаться назначить его, но это просто для того, чтобы показать вам

Это будет работать:

DevExNodes.TreeListNode node = this.treeList1.FindNodeByID(nodeId);
DevExColumns.TreeListColumn column = this.treeList1.Columns.ColumnByName(columnName);
node.SetValue(column, true);
this.treeList1.RefreshCell(node, column);

И в пределах CustomNodeCellEdit(object sender, DevExpress.XtraTreeList.GetCustomNodeCellEditEventArgs e) событие заменить ячейку по умолчанию DevExRepos.RepositoryItemCheckEdit клетка:

DevExRepos.RepositoryItemCheckEdit checkEdit = new DevExRepos.RepositoryItemCheckEdit();
checkEdit.ValueChecked = true;
checkEdit.ValueUnchecked = false;
e.RepositoryItem = checkEdit;

Если вы хотите установить свойство Checked для всего столбца, посмотрите на это. Вы должны написать собственный итератор, который легко реализовать. Но немного странный способ сделать итерацию.

Если вы хотите установить свойство Checked только для перкулярного элемента TreeListNode, надеюсь, что ниже поможет.

TreeListNode node;
node.CheckState = CheckState.Checked;
Другие вопросы по тегам