【问题标题】:UWP how to organize a gigantic input formUWP如何组织一个巨大的输入表单
【发布时间】:2018-08-23 08:36:06
【问题描述】:

我正在处理一个包含 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、Pivo​​t、ScrollViewer )?

【问题讨论】:

    标签: forms uwp pivot flipview


    【解决方案1】:

    如果部分不需要按特定顺序填写,我建议您使用NaviationView class 并将每个部分分组为一个页面。最终结果可能类似于具有许多不同部分的“设置”应用。

    如果需要按特定顺序填写表格,请使用框架/页面导航并在页面上提供上一个/下一个按钮。

    【讨论】:

    • 表格不必按特定顺序填写。但是由于它太大并且允许跳转到不同的部分,所以我想通过在该部分有效时(至少所有必填字段均已正确填写)。我已经开始研究 NavigationView 作为各个部分中 Pivot 的替代品。我将继续尝试它。谢谢。
    • NavigationView 的样例中有相当多的代码。我不能从 DataTemplates 的 ResourceDictionary 中使用它。目前它的实现方式,它对 MVVM 不友好。我必须重新组织很多东西才能使用它。
    • UI 设计和代码结构是不同的——您不应该让代码结构和架构定义您使用的 UI 范例和模型。考虑一下您希望 UI 如何工作,然后找出支持该设计的正确编码模型。根据您的问题,正确的 UI 模型是 NavigationView - 现在作为开发人员,您将确定如何以最有效的方式实现它。当您已经为不同的 UI 设计提交了代码时,您会犹豫是否在需要时进行更改。克服它。
    猜你喜欢
    • 2011-02-02
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 2012-04-21
    • 2018-08-20
    相关资源
    最近更新 更多