2014-10-28 59 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 

如果您想結合基於用戶選擇的各種選項,這很有用。換句話說,您可以繞過線性過程並在頁面之間跳轉。