ユーザーに販売注文ラインのグリッドを表示したいと思います。このグリッドでは、ユーザーは出荷する各行に金額を入力できます。[保存] ボタンを押すと、変更されたすべての行が処理されます。
+---+------------+---------+---------+--------+------------------+
| # | PartNumber | Ordered | Shipped | Descr. | Quantity to ship |
+---+------------+---------+---------+--------+------------------+
| 1 | A12356 | 10 | 5 | Wheel | [ input field ] |
+---+------------+---------+---------+--------+------------------+
| 2 | B54556 | 10 | 0 | Frame | [ input field ] |
+---+------------+---------+---------+--------+------------------+
[PROCESS BUTTON]
つまり、ユーザーは一度に複数の明細行の出荷金額を入力して [プロセス] をクリックできるということです。
ここまでは順調ですね。
私が達成したいのは、ユーザーがこのグリッドのセルをクリックできることです。
- PartNumber をクリックします。部品の詳細を含む一般的なコンテンツ要素が開きます。
- ShippedQty をクリックします。以前の出荷で一般的なコンテンツ要素が開きます。
- 等
アプリケーション全体でこれらの汎用コンテンツ要素を再利用したいと考えています。
(ユーザーが PartNumber をクリックできるテーブルは多数あります)
たとえば、PartNumber の詳細を表示している間、既に変更されている入力フィールド、スクロール位置などは、マスター ビュー (上記の表) でそのまま維持する必要があります。
私の質問:
このための適切な設計戦略は何でしょうか? WinForm では、詳細を含む新しいダイアログを開くだけです。これは UWP には適していないようです。
これまでのところ、次の代替案を考えました。
2 つのペインを持つSplitView : (1:マスター) 販売注文明細ページと (2:詳細) ユーザーがクリックする列に応じてコンテンツが (再) 設定される詳細ページ。
- Pro : 詳細ビュー内で Frame.Navigate() を使用できます。
ユーザーが PartNumber または Shipped Qty などをクリックするかどうかに応じて、コンテンツが (再) 設定されるContentPresenter 。
詳細コンテンツ要素のContentDialog または ModalDialog 。
- これは ContentDialog の使用方法ではないようです。一度に開くことができる ContentDialog は 1 つだけです。ContentDialog はデフォルトで、内部の UI 要素に応じて動的にサイズ変更されます。
- 不足しているオプションはありますか?