开发向导UI - WPF

bar*_*ron 9 c# wpf user-controls wizard

全部在WPF中:

开发向导应用程序后,用户必须先回答一些简单的问题才能进入主应用程序.然后主应用程序预先填充从向导获得的信息.

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

WizardControl1.IsVisible = false;
WizardControl2.IsVisible = true;
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,用户控件没有IsVisible的setter.欢呼.

所以我想我会在向导的每个部分使用单独的窗口.这种方法的问题在于,现在当踩到它们之间时,窗口在随机位置打开,并且通过向下通过向导进行操作,下一个窗口随机弹出,这实在令人分心和令人沮丧.

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

谢谢

kle*_*ent 9

查看此链接:http: //www.codeproject.com/KB/WPF/InternationalizedWizard.aspx 这是关于在Josh Smith中使用WPF构建向导的文章,它看起来很漂亮.我发现它对我很有帮助,希望你也能.

  • “我们很抱歉,您尝试查看的文章已于 2021 年 1 月 22 日删除。” (2认同)

kyo*_*ryu 3

我可能会使用数据绑定和模板选择器来解决这个问题。将向导表单绑定到“WizardData”类,该类公开“WizardPage”基类的列表。

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

听起来确实比实际需要做更多的工作。它还为您提供了代码和 UI 之间良好分离的好处(所有“工作”均由 WizardData 和 WizardPage 类完成),以及独立于 UI 测试逻辑的能力。

这也是解决该问题的一种非常 WPF/MVVM 的方法。