アプリケーションの一部として、複数の固定されたスクロール ペインで構成される「スーパー グリッド」を作成する必要があります。グリッドには、次の機能をサポートする必要があるという要件もあります。
- 「妥当な」スクロール パフォーマンスで数百行のデータグリッドを表示する
- 特定のフィールドでグループ化し、グループ化して折りたたむ/展開する
- 画像、テキスト、コンボボックス、ボタンなど、フィールド内に任意のコントロールを表示します
- ボタンとフィールドの編集、および読み取り専用モードを許可する
- 複数の垂直分割ペインを許可する (または回避策、複数の同期グリッド)
- 永続性を伴うユーザー列の並べ替え
- ユーザー列の昇順/降順の並べ替え
- 列の動的挿入/削除 (列の選択)
- グループ化の下の 4 番目のディメンション – 選択した行の RowDetails テンプレート
- 値の更新時にセル/行テンプレートの点滅/アニメーションを許可
私の最初の実現可能性は、WPF Datagrid が上記のほぼすべての要件に対応できることを示唆していますが (重いテンプレートを使用)、複数の垂直分割ペインはカバーされない可能性があります。以下は、私が達成しようとしていることの図です。
誰かが以前にこれを行ったことがあるかどうか、もしそうなら、どのグリッド技術を使用したかをお尋ねしたいと思います.
- 上記はWPF Datagridで実行できますか? Frozen 列を認識していますが、これは最初の N 列のみの凍結に適用されるようです
- 上記は、複数のグリッドと垂直スクロール位置の同期で達成できますか?
- もしそうなら、このソリューションはまだ仮想化されますか?
- 代わりにこれを達成するために推奨できるサードパーティのグリッドはありますか? 社内ブランディングに従ってグリッドを大幅にスタイリングするため、柔軟でブレンド可能でなければならないことに注意してください
コメント/提案をお待ちしております。
更新 - 実現可能性調査の結果
- 私は、3x グリッドとそれらの間の折りたたみ可能なグリッド スプリッターを使用して、このための実用的なプロトタイプを持ってい ます。
- スクロールビューアは、この質問からの回答を使用して同期されます。
- TwoWay バインディングを使用して共通の SelectedIndex プロパティにバインドすることにより、選択された行が 3 つのグリッド間で同期されます。
次に、グループ化と行の詳細テンプレートに取り組みます...ポイントをくれた回答者に感謝します! :)