Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当月份更改时,WPF DatePicker的集合访问器将被命中三次_Wpf_Xaml_Datepicker - Fatal编程技术网

当月份更改时,WPF DatePicker的集合访问器将被命中三次

当月份更改时,WPF DatePicker的集合访问器将被命中三次,wpf,xaml,datepicker,Wpf,Xaml,Datepicker,我的视图中有两个日期选择器(Startdate和Enddate),它们绑定到DateTime类型的两个不同属性?在ViewModel中。我的视图模型中有一个验证,它总是检查Startdate是否小于EndDate 我的视图代码如下所示: <DatePicker Style="{StaticResource DatePickerStyle}" Focusable="False" SelectedDate=

我的视图中有两个日期选择器(Startdate和Enddate),它们绑定到DateTime类型的两个不同属性?在ViewModel中。我的视图模型中有一个验证,它总是检查Startdate是否小于EndDate

我的视图代码如下所示:

<DatePicker Style="{StaticResource DatePickerStyle}" Focusable="False"
                                            SelectedDate="{Binding EViewModel.StartDate}"
                                            x:Name="EStartDate"/>

<DatePicker Style="{StaticResource DatePickerStyle}" Focusable="False"
                                                SelectedDate="{Binding EViewModel.EndDate}"
                                                x:Name="EEndDate"/>
public static string StartandEndDateFieldValidator(object value, DateTime? startDate, DateTime? endDate)
        {

            string errorMsg = null;
            if (value != null)
            {
                if (startDate > endDate)
                {
                    errorMsg = DateErrorMessage;
                    MessageBox.Show(errorMsg);

                }

            }
            return errorMsg;
        }
我的问题是,当我选择“开始日期”为“今天”,打开“结束日期”下拉列表,并使用“月份导航器”按钮(下拉列表顶部月份左侧的箭头)选择“上一个月”时,上一个月的第一个被选为默认值,设置帐户或被调用三次,因此验证弹出窗口出现三次。在这种情况下,我必须点击Ok三次。我不明白为什么会这样


请帮我解决这个问题。

这不是一个重复的例子。尝试了与您所做的相同的操作,仅当您选择日期时才为每个属性启动setter。你能提供更多这方面的信息吗?您是否在其他地方设置StartDate和EndDate?不,我实际上是直接将值设置到客户端模型,并从clientModel调用此验证器每次我设置日期时,都不会调用此验证器,因为集合本身不会被命中。