WPF DatePicker,显示绑定到属性的今天日期

use*_*422 15 c# wpf xaml datepicker

这是将WPF日期选择器的默认日期设置为当前日期的可能重复,但我已经尝试了问题中的代码并且它不起作用,希望我遗漏了一些简单的东西

好的,因为问题说明,我想在视图加载时显示当前日期,但是,我将SelectedDate属性限制为我的属性,我不认为你可以使用"文本",因为我绑定到的属性是DateTime属性.是的,我可以在模型中进行转换,但XAML(我认为)应该能够为我做这个.

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

XAML

    <DatePicker HorizontalAlignment="Left" 
                DisplayDate="{x:Static System:DateTime.Now}"
                SelectedDate="{Binding AvailableFrom, Mode=TwoWay}"
                Margin="139,58,0,0" 
                VerticalAlignment="Top" 
                Width="120"/> 
Run Code Online (Sandbox Code Playgroud)

如果大代表认为它是重复的,我很乐意删除它,

我做了什么来解决......

     get
     {

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

        return m_AvailableFrom;
     }
Run Code Online (Sandbox Code Playgroud)

干杯求救

Jos*_*ham 29

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

如果你想使用XAML,一个选项是使AvailableFrom属性为DateTime?(可为空的DateTime)而不是a DateTime.然后默认值为null而不是"01/01/0001".

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

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" />
Run Code Online (Sandbox Code Playgroud)

并且UI将在任何时候显示当前日期AvailableFrom为null.