1

DevExpress WinForms XtraTreeListコントロールを使用していて、チェックボックスを含むいくつかの列があります。つまり、列のColumnEditプロパティをRepositoryCheckEditに設定しました。

特定のCheckEditセルの値にプログラムでアクセスし、それをTrue / Falseに設定するにはどうすればよいですか?

テキストセルには、TreeListNode [index] = "string" ( TreeListNode.SetValue(index、 "string")と同じ)を使用しましたが、TreeListNode [index]=booleanはCheckEditセルに影響を与えないようです。

どんな助けでも大歓迎です。

4

4 に答える 4

0

参照しているインデックスが実際にはCheckEditまたはRepositoryCheckEditであることがわかっている場合は、そのようにキャストします。

これらの線に沿って:

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

割り当てる前に、まずnullかどうかを確認することをお勧めしますが、これは単に表示するためのものです。

于 2011-08-12T20:55:22.730 に答える
0

列全体にCheckedプロパティを設定する場合は、これを参照してください。実装が簡単なカスタムイテレータを作成する必要があります。しかし、反復を行うための少し奇妙な方法。

特定のTreeListNodeアイテムに対してのみCheckedプロパティを設定する場合は、以下が役立ちます。

TreeListNode node;
node.CheckState = CheckState.Checked;
于 2011-08-13T08:43:52.973 に答える
0

どちらの提案も機能しなかったことがわかりました。これが私が問題を解決するためにしたことです。

列セルにチェックボックスを表示するには、ColumnEditプロパティをRepositoryCheckEditに設定する代わりに、列のUnboundTypeをブール値に設定します。

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

次に、CheckEditの値を設定するには、次のようにします。

TreeListNode[index] = true; //false

PS-RepositoryItemCheckEditが原因で、他のメソッドが機能しなかったと思います。どうやら、これが事実であるときにCheckEdit値を設定する他の方法があります(私は見つけることができませんでした)。

ご関心とご提案ありがとうございます。

于 2011-08-16T10:35:39.630 に答える
0

これは機能します:

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;
于 2016-01-21T11:50:45.527 に答える