forms - UWP如何组织一个巨大的输入表单
问题描述
我正在处理一个包含 218 个输入控件的输入表单,这些控件分为 20 个部分。我所做的是为每个部分创建一个 ViewModel 并使用 DataTemplate 定义它的外观。表单的主页是一个瓦片网格。每部分一个瓷砖。部分是 FlipView 中的一个页面,您可以在其中从一个部分翻转到下一个部分。单击其中一个图块会直接跳转到 FlipView 中的页面。某些部分包含允许创建多个项目(即人)的 Pivot 控件。如果 Pivot 中的内容很长,则需要一个 ScrollViewer。Pivots 和 ScrollViewer 不能很好地结合在一起。滚动不起作用。有一个 SO question and answer 可以解决这个问题:Pivot inside a ScrollViewer, scrollviewer wont scroll
UWP 风格指南说
与其用大量的输入控件使屏幕不堪重负,不如考虑为您的表单创建多个页面。
但它没有说明页面应该如何组织。
所以给定一个带有 218 个输入控件和 20 个部分的巨大输入表单,其中一些可以添加多个项目,有没有比我尝试做的更好的方法来组织表单(FlipView、ViewModels、DataTemplates、Pivot、ScrollViewer)?
解决方案
如果部分不需要按特定顺序填写,我建议您使用NaviationView 类并将每个部分分组为一个 Page。最终结果可能类似于具有许多不同部分的设置应用程序。
如果表格需要按特定顺序填写,请使用框架/页面导航并在页面上提供上一个/下一个按钮。
推荐阅读
- c++ - 为什么不能在 STL 映射中插入值?
- android - Camera 2 CameraCharacteristics 似乎显示不正确的数据
- active-directory - 是否有规范的地方可以在 Active Directory 中存储任意键/值对
- laravel - 如何使用 Lighthouse 在 Laravel 5.8 中使用字段值过滤 Graphql 查询
- javascript - 使用数组自动完成值
- python - 当标识的值打算为字符串时,如何解决“int() 的无效文字,以 10 为基数”错误
- node.js - axios 获取请求挂起,无错误,catch 未触发
- react-native - 如何进一步调试 cli react-native bundle 命令?命令挂起,没有错误
- python - 如何在文本输入框内添加滚动条
- typescript - 通用方法的打字稿接口