2014-10-28 92 views
4

使用WPF扩展工具包向导。WPF扩展工具包向导验证

我不知道我该怎么去验证所有的控制已在页面上填写,允许用户向前导航

之前,我知道我就能够在我的代码,单击下一步按钮,后面

private void Wizard_Next(object sender, Xceed.Wpf.Toolkit.Core.CancelRoutedEventArgs e) 
{ 
} 

我知道我可以基于发件人检测到我在向导上的哪个页面,但是如何获取该向导页面上的控件的句柄?

+0

您是否找到了解决方案?我也有同样的问题 – 2014-11-17 00:26:10

+0

我最终做的是在我的MainWindowView模型中引用我的ViewModels。由于他们的Wizard在主窗口中,我可以获取它的DataContext(MainWindowVM),然后访问其他View Models来检查它们的控件。并非真正在MVVM方案中,而是让我继续前进 – David 2014-11-19 03:52:16

回答

1

您可以通过CanSelectNextPage通过XAML 做例如:

<xctk:WizardPage.CanSelectNextPage> 
      <MultiBinding Converter="{StaticResource NextFromPage1}"> 
       <Binding ElementName ="checkbox1" Path="IsChecked" Mode="OneWay"/> 
       <Binding ElementName ="checkbox2" Path="IsChecked" Mode="OneWay"/> 
       <Binding ElementName ="text1" Path="Text" Mode="OneWay"/> 
       <Binding ElementName ="text2" Path="Text" Mode="OneWay"/> 
      </MultiBinding> 
</xctk:WizardPage.CanSelectNextPage> 

任何你可以插入你的代码转换器,它会验证你的控件

1

它就是这么简单..

e.Cancel = true; 

这告诉'向导'取消下一个请求,它将保留在当前页面上。

你还可以做的是跳到任何其他页面。

e.Cancel = true; 
Wizard.CurrentPage = PageNo 

如果您想结合基于用户选择的各种选项,这很有用。换句话说,您可以绕过线性过程并在页面之间跳转。