C# · 12月 27, 2021

c# – 开发向导UI – WPF

所有在 WPF中:

开发一个向导应用程序,用户必须先回答一些简单的问题才能带到主应用程序.然后,主应用程序预先填写从向导获取的信息.

我从一个窗口开始,然后我计划添加用户控件.主窗口将具有第一行中的用户控件,然后是“Next”和“PrevIoUs”按钮来控制第二行中的控件之间的移动.这样,我可以轻松地控制逻辑在如下之间切换:

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

但是由于某些原因,用户控件没有为IsVisible设置setter.欢呼.

所以我以为我只是使用单独的窗口的向导的每一部分.这种方法的问题是,现在当步骤之间,窗口以随机位置打开,然后通过向导进行下一步的下放,下一个窗口随机弹出,这真的令人分心和令人沮丧.

那么如何正确地开发一个向导?我不明白为什么这么难…不完全是火箭科学…替换文本和控件,并按下一个/上一个之后存储输入!

谢谢

解决方法 我可能会使用数据绑定和模板选择器来阻止它.将向导表单绑定到“WizardData”类,该类暴露了“WizardPage”基类的列表.

WizardData类可以公开在窗体上定义正确信息的属性,并显示使用模板选择器的主页面的控件,以根据特定向导页面的实际类型确定要显示的正确控件.

真的,听起来像是更多的工作.它还为您提供了代码和UI之间良好分离的好处(所有“工作”都由WizardData和WizardPage类完成),以及独立于UI测试逻辑的能力.

这也是一个非常WPF / MVVM的方法来解决这个问题.