2015-12-20 50 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版本来构建您的应用程序? –