2015-12-20 75 views
0

您好我正在開發一個WinRT應用程序,其中我使用DatePicker。我想做DatePicker驗證,但無法找到相關的偵聽器。DatePicker驗證 - WinRT

我發現的唯一監聽者是日期改變時觸發的datePicker_dateChanged。

我有兩個日期選取器「dpStartDate」和「dpEndDate」,我的驗證規則 dpStartDate後不能dpEndDate dpEndDate不能dpStartDate之前。

<DatePicker x:Name="dpStartDate " DateChanged="dpStartDate_DateChanged" Header="End date" Margin="0,10,0,0"></DatePicker> 
<DatePicker x:Name="dpEndDate" DateChanged="dpEndDate_DateChanged" Header="Start date" Margin="0,10,0,0"></DatePicker> 

private void dpStartDate_DateChanged(object sender, DatePickerValueChangedEventArgs e) 
    { 

    } 

    private void dpEndDate_DateChanged(object sender, DatePickerValueChangedEventArgs e) 
    { 

    } 

您能否建議如何進行驗證。 如果你可以在WinRT中爲datePicker提供任何其他方式的建議,這將有很大的幫助。

在此先感謝 饒

+0

爲什麼不寫檢查,當有任何變化的值的代碼? – WiredPrairie

回答

0

我建議建立類似如下:

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Runtime.InteropServices.WindowsRuntime; 
using Windows.Foundation; 
using Windows.Foundation.Collections; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Controls.Primitives; 
using Windows.UI.Xaml.Data; 
using Windows.UI.Xaml.Input; 
using Windows.UI.Xaml.Media; 
using Windows.UI.Xaml.Navigation; 

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 

namespace App9 
{ 
    /// <summary> 
    /// An empty page that can be used on its own or navigated to within a Frame. 
    /// </summary> 
    public sealed partial class MainPage : Page 
    { 
     DateTimeOffset endDate; 
     public MainPage() 
     { 
      this.InitializeComponent(); 
     } 

     private void DatePickerStart_DateChanged(object sender, DatePickerValueChangedEventArgs e) 
     { 
     if (DatePickerStart.Date > DatePickerEnd.Date) 
     { 
      DatePickerEnd.Date = DatePickerStart.Date; 
      endDate = DatePickerEnd.Date; 
     } 
     } 

     private void DatePickerEnd_DateChanged(object sender, DatePickerValueChangedEventArgs e) 
     { 
      if (DatePickerStart.Date > DatePickerEnd.Date) 
      { 
       // Show message can't 
       DatePickerEnd.Date = endDate; 
      } 
      else 
      { 
       endDate = DatePickerEnd.Date; 
      } 

     } 
    } 
} 
+0

嗨,穆罕默德,我已經嘗試了你說的話,但是我得到了一個關於未處理異常的錯誤。 'AppTesting.Windows.exe中0x766D5388(profapi.dll)未處理的異常:0xC00000FD:堆棧溢出(參數:0x00000001,0x063E2EBC)。' 當我嘗試更改開始日期時,出現未處理的異常。 – BRDroid

+0

我做了1個額外的更改,我在這裏爲您附上整個解決方案:http://1drv.ms/22mupsu 您使用哪些操作系統和VS版本來構建您的應用程序? –