如何将TargetNullValue设置为日期?

6

我正在使用WPF工具包中的日历控件,允许用户选择日期。如果尚未选择日期,则所绑定的SelectedDate属性为空。这将使日历默认为公元前0年1月1日。我想做一些类似于以下的事情:

SelectedDate="{Binding UserPickedDate, TargetNullValue=Today, Mode=TwoWay}"

但是,“今天”和“现在”都会抛出绑定错误。我能否使用TargetNullValue将默认日期设置为“今天”或“现在”?

1个回答

13

试一下这个:

xmlns:sys="clr-namespace:System;assembly=mscorlib"
...

TargetNullValue={x:Static sys:DateTime.Now}

3
谢谢,我当时确实有点脑抽。如果其他人也遇到这个问题,你需要导入mscorlib,例如xmlns:sys="clr-namespace:System;assembly=mscorlib"。然后绑定应该是SelectedDate="{Binding UserPickedDate, TargetNullValue={x:Static sys:DateTime.Today}, Mode=TwoWay}"。 - Bryan Anderson
将Calendar控件的TargetNullValue设置为Today会有不幸的后果,因为之后每当您选择Today时,绑定的属性都会被设置为Null。出于这个原因,我的最终代码将TargetNullValue设置为Now,这样就避免了这个问题。 - Bryan Anderson
这就是我一直在寻找的。我的日期选择器在绑定到一个尚未设置日期的新对象后,仍然记住了上一个值。 - AlignedDev
1
如何在Silverlight中实现?https://dev59.com/vF7Va4cB1Zd3GeqPNM6l - Peter Lee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接