2011-08-12 16 views
1

私はDevExpress WinForms XtraTreeListコントロールを使用しており、チェックボックスを含むいくつかの列を持っています。つまり、列のColumnEditプロパティをRepositoryCheckEditに設定しています。XtraTreeList - CheckEditセルの値を設定するにはどうすればよいですか?

特定のCheckEditセルの値にプログラムでアクセスしてTrue/Falseに設定するにはどうすればよいですか?テキスト細胞について

、IはTreeListNode [インデックス] =(TreeListNode.SetValue(索引、 "文字列")と同じである) "文字列"が、TreeListNode [インデックス] =ブールを使用していますCheckEditセルには何の影響も与えないようです。

ご協力いただければ幸いです。

答えて

0

どちらの提案もうまくいきません。問題を解決するために私がしたことがここにあります。 CheckEditの値を設定するために、次に

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

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

TreeListNode[index] = true; //false 

PS - 私はRepositoryItemCheckEditが原因で他の方法がうまくいかないと思います。どうやら、Checkeditの値を設定する他の方法があります(これは私が見つけることができませんでした)。

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

0

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

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

それは最初のNULLだ場合、私は明らかにそれを割り当てるしようとする前に、チェックをお勧めしますが、これはあなたを示すことです。

+0

まず、あなたの助けをありがとうございました。私は自由にコードを手に入れることはできません(それは作業プロジェクトなので)、次の火曜日に試してみることができますが、どういう方向に進むのか間違いなくお知らせします。再度、感謝します。 – Rachel

0

列全体のCheckedプロパティを設定する場合は、thisを参照してください。実装が簡単なカスタムイテレータを作成する必要があります。しかし、繰り返しを行うのはちょっと変わった方法です。

Checkticプロパティをperticular TreeListNode項目に対してのみ設定する場合は、以下のように役立ちます。

TreeListNode node; 
node.CheckState = CheckState.Checked; 
+0

情報ありがとうございましたが、私のニーズを十分に満足させるとは思いません。列全体のCheckedプロパティを設定したくありません。実際には、合計5つのCheckEditカラムがあり、データベースの特定のデータに従って、各ノードのチェック状態を設定したいと考えています。だから私はNode自体をCheckedに設定したくない。最初の質問が多少あいまいであれば、お詫び申し上げます。 – Rachel

+0

@ Rachel:まだCheckStateを設定することはあなたの必要を満たすはずです。 TreeListNode.CheckState = CheckState.Checked; – CharithJ

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; 
関連する問題