2010-02-01 43 views
1

我正在構建我自己的嚮導樣式界面的實現,並努力使它正常工作,以及每個其他樣式的嚮導界面,我期望遇到同樣的問題。見圖片:用戶界面和變量訪問混淆

http://img208.imageshack.us/img208/3857/wizardinwindow.jpg

http://yfrog.com/5swizardinwindowj

基本上我使用網格和具有低於我的導航元素。該網格將切換畫面,就像這樣:

private void btnNext_Click(object sender, RoutedEventArgs e) 
{ 
    Wizard.Progress++; 
    SwitchUserControl(); 
} 

private void SwitchUserControl() 
{ 
    switch (Wizard.Progress) 
    { 
     case 0: 
      contentGrid.Children.RemoveRange(0, contentGrid.Children.Count); 
      contentGrid.Children.Add(screen0); 
      break; 
     case 1: 
      contentGrid.Children.RemoveRange(0, contentGrid.Children.Count); 
      contentGrid.Children.Add(screen1); 
      break; 
     case 2: 
      contentGrid.Children.RemoveRange(0, contentGrid.Children.Count); 
      contentGrid.Children.Add(screen2); 
      break; 
     case 3: 
      contentGrid.Children.RemoveRange(0, contentGrid.Children.Count); 
      contentGrid.Children.Add(screen3); 
      break; 
    } 
} 

這是我得到的問題

這工作正常對照組之間進行切換。問題是,比如說在屏幕上輸入一個日期。我有一些數據驗證代碼在該文本字段上運行。如果驗證失敗,則文本框邊框變爲紅色並顯示一條消息。但是現在我不知道這個代碼可以在哪裏。我曾經在usercontrol screenX上的按鈕上使用它,但是現在我的導航按鈕在下面,然後如果我想將它放在導航按鈕下的代碼中,我無法訪問文本框!

我也看到在嚮導樣式界面的大多數實現中出現這個問題。我看到的大多數示例都使用複選框或單選按鈕,因此在數據輸入中沒有錯誤。但這對這個例子不是很有幫助。

那麼我有什麼選擇來實現我想要的?

感謝您的支持。

回答

0

您的問題的答案可能是重新開始更加規範的方法。 WPF支持一個很好的Navigation API,你可以用它來構建嚮導。它在工作時是Here is a sample

關於驗證,在導航API中,您可以使用Page類替代您的控件(從您的示例中)。您的Page類可以有一個屬性,指明它是有效的還是無效的,並且您可以通過特定於頁面的字段輸入驗證來保留字段的邏輯。

+0

我似乎沒有任何可以添加到解決方案的NavigationWindow。我有頁面功能(WPF),但無法找到導航窗口? – baron 2010-02-01 04:23:15