0

既存の質問を見逃していないことを願っていますが、検索しても見つかりませんでした。私のプロジェクトには、複数レベルのデータ階層を示す RadTreeView があります。コントロールはトライステート モードに設定されます。ユーザーが下位レベルのアイテムをクリックすると、親がチェックされます (必要に応じてフル チェックまたはダッシュ チェック)。

[-]
 - [] Item 1
 --- [] Sub-Item 1-1
 - [*] Item 2
 --- [*] Sub-Item 2-1

この例では、サブ項目 2-1 をチェックしました。すべての子がチェックされているため、親アイテム 2 は適切にチェックされています。ルート ノードには、何かがチェックされていることを示すダッシュがあります。問題は、CheckedItems コレクションに 3 つのエントリが含まれており、チェック済みか不確定かの違いを判断する方法がないことです。内部的には itemtogglestatestorage と呼ばれるコレクションがあり、必要なもの (アイテムと状態) が正確に含まれていますが、パブリック インターフェイスを介してこれを取得する方法はありません。明らかな何かが欠けていますか?これに対処するための推奨される方法は何ですか?

4

1 に答える 1

0

ここでは、UI 要素ではなく、データを操作する方がよいと思います。チェック状態は、データバインドされたオブジェクトのプロパティに対応している必要があります。Telerik ドキュメントには、このようなバインドの良い例があります: Bind RadTreeViewItem CheckState プロパティ(これは WPF ドキュメントですが、SL にも同じことが適用され、SL バージョンよりもクリーンです)

あなたがしなければならない唯一の変更は、現在3つの状態が必要であるため、に置き換えbool、このドキュメントページから両方の変換メソッドにbool?追加することです。ToggleState.Indeterminateそうすれば、オブジェクト自体から問題なくアイテムの状態を取得できるようになります!

于 2013-10-11T07:49:38.007 に答える