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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 从另一个日期选择器值绑定DisplayDate和DisplayDateStart_Wpf - Fatal编程技术网

Wpf 从另一个日期选择器值绑定DisplayDate和DisplayDateStart

Wpf 从另一个日期选择器值绑定DisplayDate和DisplayDateStart,wpf,Wpf,我有两个选择约会的人。第一个日期选择器设置第二个的DisplayDate和DisplayDateStart。下面的代码将DisplayDate和DisplayDateStart设置为正确,我遇到的问题是,当我使用第二个日期选择器选择日期时,它也会更新第一个日期选择器选择的日期。我可以问一下我该怎么解决这个问题吗 比如说 DP1.SelectedDate = january 1 2017 如果我将DP2.SelectedDate更改为2017年2月3日,那么DP1.SelectedDate也将更

我有两个选择约会的人。第一个日期选择器设置第二个的DisplayDate和DisplayDateStart。下面的代码将DisplayDate和DisplayDateStart设置为正确,我遇到的问题是,当我使用第二个日期选择器选择日期时,它也会更新第一个日期选择器选择的日期。我可以问一下我该怎么解决这个问题吗

比如说

DP1.SelectedDate = january 1 2017
如果我将DP2.SelectedDate更改为2017年2月3日,那么DP1.SelectedDate也将更改为2017年2月3日

<telerik:RadDatePicker SelectedDate="{Binding DisbursalDatePicker, Mode=TwoWay}"/>

<telerik:RadDatePicker  DisplayDateStart="{Binding DisbursalDatePicker, Mode=TwoWay}"
             DisplayDate="{Binding DisbursalDatePicker, Mode=TwoWay}"/>

我还尝试将DisplayDateStart和DisplayDate设置为单向,但DisplayDate无法正常工作,它显示了DateTime。现在,不再显示支出日期选择器


我试图使帖子尽可能简单化,这样任何人都可以测试它,但我相信这可能是Telerik控件的问题。该问题仅出现在telerik上:RadDatePicker而不是wpf DatePicker在日期选择器上是冗余的;创建dependency属性时,框架会将其作为属性绑定的默认值

DatePicker.DisplayDate
似乎效果不太好:通过实验,我发现如果
SelectedDate
为空,
DisplayDate
将是日历弹出窗口上突出显示的初始日期。我知道这很有用,但这不是你想要的。MSDN的WPF文档令人失望

如果我了解您的要求,这是可行的:

<DatePicker 
    SelectedDate="{Binding DisbursalDatePicker}"/>

<DatePicker 
    DisplayDateStart="{Binding DisbursalDatePicker}" 
    SelectedDate="{Binding DisbursalDatePicker, Mode=OneWay}" 
    />
我可能会使
支付日期选择器
设置器更智能一些:仅当
其他日期值
的值无效时,才更新
其他日期值

private DateTime _disbursalDatePicker = default(DateTime);
public DateTime DisbursalDatePicker
{
    get { return _disbursalDatePicker; }
    set
    {
        if (value != _disbursalDatePicker)
        {
            _disbursalDatePicker = value;
            if (OtherDateValue.CompareTo(DisbursalDatePicker) < 0)
            {
                OtherDateValue = DisbursalDatePicker;
            }
            OnPropertyChanged();
        }
    }
}
private DateTime\u-expursaldatepicker=default(DateTime);
公共日期时间支出日期选择器
{
获取{return}
设置
{
如果(值!=\u支出日期选择器)
{
_支出数据选择器=值;
如果(OtherDateValue.CompareTo(支出日期选择器)<0)
{
OtherDateValue=支出日期选择器;
}
OnPropertyChanged();
}
}
}

在第二个日期选择器上尝试
DisplayDate=“{Binding-expursaldatepicker,Mode=OneWay}”
。“那么DisplayDateStart不能正常工作”是什么意思?正确的行为是什么?你看到了什么?@EdPlunkett更新了帖子。抱歉,DisplayDateStart以单向方式正确工作。DisplayDate未更改,显示DateTime。现在,无论Mode=Oneway时将支出日期选择器更改为什么,我都无法确定
DisplayDate
属性的用途。但是,如果我在第二个日期选取器和第一个日期选取器上使用
SelectedDate
,那么第二个日期选取器将准确地反映
支付日期选取器的值。
private DateTime _disbursalDatePicker = default(DateTime);
public DateTime DisbursalDatePicker
{
    get { return _disbursalDatePicker; }
    set
    {
        if (value != _disbursalDatePicker)
        {
            _disbursalDatePicker = value;
            if (OtherDateValue.CompareTo(DisbursalDatePicker) < 0)
            {
                OtherDateValue = DisbursalDatePicker;
            }
            OnPropertyChanged();
        }
    }
}