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