开发向导式用户界面 - WPF

9

全部使用WPF:

开发向导应用程序时,用户必须在进入主应用程序之前回答一些简单的问题。然后,主应用程序将使用从向导获得的信息进行预填充。

我首先创建了一个窗口,然后计划添加用户控件。主窗口将在第一行中包含用户控件,然后在第二行包含“下一步”和“上一步”按钮来控制在控件之间移动。这样我可以轻松地控制逻辑以在屏幕之间切换,例如:

WizardControl1.IsVisible = false;
WizardControl2.IsVisible = true;

但出于某种原因,用户控件没有IsVisible的setter。太好了。

于是我想每个向导部分都使用单独的窗口。这种方法的问题是当在步骤之间跳转时,窗口会随机打开,并且通过下一步逐步完成向导时,下一个窗口会随机弹出,这真的很令人分心和沮丧。

那么如何正确地开发向导呢?我不明白为什么这样做很难...这并不是什么高深的科学...只需替换文本和控件,并在按下下一步/上一步后存储输入即可!

谢谢


有一个Visibility属性,而不是“IsVisible”。 - StayOnTarget
6个回答

7

2
很抱歉,您正在尝试查看的文章已于2021年1月22日被删除。 - StayOnTarget

4

3
我可能会使用数据绑定和模板选择器来解决这个问题。将向导表单绑定到“WizardData”类,该类公开了“WizardPage”基类列表。
WizardData类可以公开定义表单上正确信息的属性,并显示一个控件用于主页面,该控件使用模板选择器根据特定向导页面的实际类型确定要显示的正确控件。
实际上,这听起来比它更加复杂。这还为您提供了良好的代码和UI分离(所有“工作”都由WizardData和WizardPage类完成),以及测试逻辑独立于UI的能力。
这也是一种非常WPF/MVVM的解决问题的方法。

你知道有没有一些例子可以帮助我入门?我不确定如何做你所说的“使向导表单绑定到一个公开了“WizardPage”基类列表的“WizardData”类”。 - baron
我看看能不能快速给你做一个示例。 - kyoryu

0

我知道这并没有直接回答你的问题,但我想提一下它作为一个可能的替代方案。我使用过Actipro的向导控件,并取得了不错的效果,当我需要支持时,他们也非常积极响应。我与他们没有任何关联;我只是喜欢不必编写管理向导的基础代码。


0
  1. 这个属性叫做"可见性"。
  2. 我发现当我动态添加和移除控件而不是隐藏它们时,效果更好。

0
我也在寻找向导解决方案。 我需要坚持使用原始的WPF组件,因此我使用标准表单和选项卡控件实现了向导。 运行时只需隐藏选项卡以便在IDE中可用。 在运行时,只需使用“后退”,“下一步”,“完成”即可遍历选项卡项目。 效果很好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接