XtraTreeList - Как я могу установить значение ячейки CheckEdit? - PullRequest
1 голос
/ 12 августа 2011

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

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

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

Любая помощь будет принята с благодарностью.

Ответы [ 4 ]

0 голосов
/ 21 января 2016

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

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;
0 голосов
/ 13 августа 2011

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

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

TreeListNode node;
node.CheckState = CheckState.Checked;
0 голосов
/ 16 августа 2011

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

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

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

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

TreeListNode[index] = true; //false

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

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

0 голосов
/ 13 августа 2011

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

Вдоль этих строк:

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

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

...