Validation 日期选择器验证-WinRT

Validation 日期选择器验证-WinRT,validation,datepicker,windows-runtime,Validation,Datepicker,Windows Runtime,您好,我正在开发一个WinRT应用程序,我在其中使用DatePicker。我想进行DatePicker验证,但在上面找不到相关的侦听器 我找到的唯一侦听器是datePicker\u dateChanged,它在日期更改时触发 我有两个日期选择器“dpStartDate”和“dpEndDate”,我的验证规则是 dpStartDate不能在dpEndDate之后 dpEndDate不能早于dpStartDate <DatePicker x:Name="dpStartDate " DateCh

您好,我正在开发一个WinRT应用程序,我在其中使用DatePicker。我想进行DatePicker验证,但在上面找不到相关的侦听器

我找到的唯一侦听器是datePicker\u 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)
    {

    }

私有void dpStartDate_DateChanged(对象发送方,DatePickerValueChangedEventArgs e)
{
}
私有void dpEndDate_DateChanged(对象发送方,DatePickerValueChangedEventArgs e)
{
}
你能建议如何进行验证吗。 如果您能为WinRT中的datePicker提供任何其他方法,那将是非常有帮助的

提前谢谢
Rao

我建议构建如下内容:

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;
            }

        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.IO;
使用System.Linq;
使用System.Runtime.InteropServices.WindowsRuntime;
使用Windows基金会;
使用Windows。
使用Windows.UI.Xaml;
使用Windows.UI.Xaml.Controls;
使用Windows.UI.Xaml.Controls.Primitives;
使用Windows.UI.Xaml.Data;
使用Windows.UI.Xaml.Input;
使用Windows.UI.Xaml.Media;
使用Windows.UI.Xaml.Navigation;
//空白页项模板被记录在http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
名称空间App9
{
/// 
///可以单独使用或在框架内导航到的空页。
/// 
公共密封部分类主页面:第页
{
DateTimeOffset-endDate;
公共主页()
{
this.InitializeComponent();
}
私有无效DatePickerStart\u DateChanged(对象发送方,DatePickerValueChangedEventArgs e)
{
如果(DatePickerStart.Date>DatePickerEnd.Date)
{
DatePickerEnd.Date=DatePickerStart.Date;
endDate=DatePickerEnd.Date;
}
}
私有无效DatePickerEnd_DateChanged(对象发送方,DatePickerValueChangedEventArgs e)
{
如果(DatePickerStart.Date>DatePickerEnd.Date)
{
//无法显示消息
DatePickerEnd.Date=endDate;
}
其他的
{
endDate=DatePickerEnd.Date;
}
}
}
}

为什么不编写代码,在其中一个发生更改时检查值呢?嗨,穆罕默德,我已经试着按照你说的做了,但是我遇到了一个关于未处理异常的错误。”AppTesting.Windows.exe中0x766D5388(profapi.dll)处出现未处理的异常:0xC00000FD:堆栈溢出(参数:0x00000001,0x063E2EBC)。“我在尝试更改开始日期时遇到未处理的异常。我做了1次额外更改,并在此处为您附加整个解决方案:您使用哪个OS和VS版本构建应用程序?