最新のコントロールガントチャートであるDevExpress v20.1の使用方法を教える40分で今すぐ登録>>
DevExpress v20.1フルバージョンをダウンロードDevExpress v20.1 中国語リソース獲得
DevExpress社のWPFコントロール、あなたは現代的な顧客のニーズに焦点を当て、強力なインタラクティブ機能を備えたXAMLベースのアプリケーションを作成することができますし、将来的にはタッチ対応ソリューションの新世代を構築します。
システムの背景
- プラットフォーム:WPF
- 製品:WPFのDXTreeList
- フレームワーク:.NET Frameworkビルド20.1.4
- オペレーティングシステム:Windows 10 x64
- IDE:Microsoft Visual Studio 2019
発生した問題
TreeListViewを使用して構造化データを表示するソリューションを実現する場合、IChildNodesSelectorを使用してツリーを構築します。適切に機能している場合、モデルがあり、各レベルには複数のサブタイプがあり、ClassAにはメンバーList ClassBとリストClassCがあります。すべての例は、可能なサブタイプを1つだけ示していることがわかります。表示に関しては、すべてのクラスが、クラスの対応する属性にマップされるインターフェースを実装します。
パブリックインターフェイスITreeBaseItem { string ObjectType {get; } string Element {get; } string Title {get; } string Detail1 {get; } string Detail2 {get; } string Detail3 {get; } }
ここから抜粋
パブリッククラスCustomChildrenSelector:IChildNodesSelector { public IEnumerable SelectChildren(object item){ if(item is ProjectStage) return((ProjectStage)item).Tasks; else if(item is ProjectObject) return((ProjectObject)item).Stages; nullを返します。 } }
問題は、ProjectStageクラスにタスクだけでなく、別のサブタイプ、つまり目標がある場合はどうなるでしょうか。IChildNodesSelectorを使用してこれを実行できますか、それとも他の戦略を続行する必要がありますか?
解決:
技術的には、これらのコレクションをセレクターにマージして、結果を返すことができます。以下に示す方法を参照できます。方法:子ノードセレクターを使用して階層データバインディングを実装する。また、不足しているさまざまなタイプの属性の編集を無効にし、CellTemplateSelectorを使用してこのメソッドを実装する必要があります。
DevExpress Technical Exchange Group 2:775869749グループディスカッションへようこそ