我想向用户展示一个带有销售订单行的网格。在此网格中,用户可以在每条线上输入要发货的金额。当按下保存按钮时,将处理所有修改的行。
+---+------------+---------+---------+--------+------------------+
| # | 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 的详细信息时,已修改的输入字段、滚动位置等必须在主视图(如上表)中保持不变。
我的问题:
什么是合适的设计策略?在 WinForm 中,我只需打开一个包含详细信息的新对话框。这似乎不适合 UWP。
到目前为止,我想到了以下替代方案:
具有两个窗格的拆分视图:(1:主)销售订单行页面和(2:详细)详细信息页面,其内容根据用户单击的列进行(重新)设置。
- Pro:可以在详细信息视图中使用 Frame.Navigate()。
ContentPresenter的内容被(重新)设置取决于用户是否单击 PartNumber 或 Shipped Qty 等。
详细内容元素的ContentDialog 或 ModalDialog。
- 这似乎不是 ContentDialog 的使用方式。任何时候都只能打开一个 ContentDialog,并且 ContentDialog 默认情况下会根据其中的 UI 元素动态调整大小。
- 我有什么选择吗?