首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF DatePicker,使用绑定到属性显示今天的日期。

WPF DatePicker,使用绑定到属性显示今天的日期。
EN

Stack Overflow用户
提问于 2014-05-02 14:06:22
回答 3查看 66.6K关注 0票数 21

这可能是https://stackoverflow.com/questions/3662506/set-the-default-date-of-wpf-date-picker-to-current-date的重复,但我已经尝试了问题中的代码,但它不起作用,希望我错过了一些简单的东西

好的,正如问题所述,我想显示视图加载时的当前日期,但是,我的SelectedDate属性被限制在我的属性上,我认为您不能使用"Text“,因为我绑定到的属性是DateTime属性。是的,我可以在模型中进行转换,但是XAML (我认为)应该能够为我做到这一点。

好的,我知道问题是什么,因为日期是"01/01/0001“,因为它绑定到我的属性,默认为01/01/0001,所以我想我需要在我的属性中做一些C#代码来说明它是否是01/01/0001,使用DateTime.Now,如果不是,使用该属性。

XAML

代码语言:javascript
运行
复制
    <DatePicker HorizontalAlignment="Left" 
                DisplayDate="{x:Static System:DateTime.Now}"
                SelectedDate="{Binding AvailableFrom, Mode=TwoWay}"
                Margin="139,58,0,0" 
                VerticalAlignment="Top" 
                Width="120"/> 

如果大代表认为这是个复制,我很乐意删除它,

我所做的决定..。

代码语言:javascript
运行
复制
     get
     {

         if (m_AvailableFrom == DateTime.MinValue)
             return DateTime.Now;

        return m_AvailableFrom;
     }

为帮助干杯

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-02 15:19:36

我个人只会在DateTime.Now代码中将AvailableFrom属性分配给ViewModel属性。

但是,如果要使用XAML,一个选项是将AvailableFrom属性设置为DateTime? (可空DateTime),而不是DateTime。则默认值为null,而不是"01/01/0001“。

然后,在您的XAML中可以使用

代码语言:javascript
运行
复制
xmlns:System="clr-namespace:System;assembly=mscorlib"

<DatePicker
    HorizontalAlignment="Left"
    SelectedDate="{Binding
        Path=AvailableFrom,
        Mode=TwoWay,
        TargetNullValue={x:Static System:DateTime.Now}}"
    Margin="139,58,0,0" 
    VerticalAlignment="Top" 
    Width="120" />

AvailableFrom为null时,UI将显示当前日期。

票数 38
EN

Stack Overflow用户

发布于 2015-08-19 18:43:40

下面的SelectedDate属性的MSDN链接显示它是可空的。我认为,如果没有设置DateTime.Now,而不是返回null,而是像其他带有可空字段的控件一样,它将不显示任何内容。

DatePicker.SelectedDate MSDN链路

票数 3
EN

Stack Overflow用户

发布于 2014-06-26 06:44:40

代码语言:javascript
运行
复制
<DatePicker HorizontalAlignment="Left"                 
        SelectedDate="{Binding AvailableFrom, Mode=TwoWay}"
        DisplayDate="{Binding DateTime.Now}"                
        Margin="139,58,0,0" 
        VerticalAlignment="Top" 
        Width="120"/>

*在DisplayDate之后使用SelectedDate

请记住,如果这有用的话,谢谢!

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23430106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档