【问题标题】:Custom Wizard Control in WPF to add and remove UserControls?WPF 中的自定义向导控件添加和删除用户控件?
【发布时间】:2011-07-03 14:51:27
【问题描述】:
如何最好地在 WPF 中创建向导控件。我的看法是;首先我有一个 Wizard Controller UserControl,它包含两个按钮,即 Back 和 Next,然后我从另外两个 UserControls 开始,其中包含供用户填写的表单,然后单击下一步进入下一个表单等......我想要什么要知道如何在进入下一个表单之前插入这个用户控件并验证我当前的对象。我可以使用什么来获取下一个和上一个事件,或者有更好的解决方案吗?
【问题讨论】:
标签:
wpf
events
mvvm
controls
wizard
【解决方案1】:
我还在学习 WPF,并且正在开发 WinForm 项目 atm,对于本文中的任何 WinForm 引用,我们深表歉意。
向导控件可以包含对向导将显示的每个用户控件的引用。向导会将所有这些控件添加到自身controls.add(_userControl1)。每个控件的可见属性都设置为 false。
该向导还可以包含一个私有 enum 和一个控件名称列表,即
private enum CurrentControl
{
_MyControl1,
_MyControl2,
_MyControl3
}
向导控件保留对当前显示控件CurrentControl _currentControl = CurrentControl._MyControl1; 的引用具有UpdateDisplay() 方法,该方法基于_currentControl 只会使该控件可见。
然后,当您单击 Prev/next 按钮时,它会根据当前值更新 _currentControl 变量,调用 UpdateDisplay() 以显示下一个控件。
这样您就可以引用您的所有用户控件(以及它们包含的数据),因此您可以验证内容,并且您的向导可以使用向导上的按钮来回浏览它们,并且向导中显示和隐藏控件的逻辑。