使用触发器更改WPF DatePicker控件的样式触发器中的日期/文本

时间:2017-12-28 12:49:28

标签: c# wpf xaml

在我开发的数据库中,日期的空值存储为或者是1/3/1上午12:00'。我想要datepicker,显示"请选择日期"消息,如果SelectedDate绑定到值' 1/1/1 12:00 am'。

试过这个:

<Style TargetType="{x:Type DatePicker}">
    <Setter Property="Margin" Value="5" />
    <Style.Triggers>
        <Trigger Property="SelectedDate" Value="01.01.0001"> 
<!--Please note, the app runs on a computer with German Timeformat, but I tried 01/01/01 12:00 am as well-->
            <Setter Property="SelectedDate" Value="null" />
        </Trigger>
    </Style.Triggers>
</Style>

我也试过这个

 <Setter Property="Text" Value="Please select date" />

然而,没有,如果这些都有效。我怎么能让这个工作?我遇到的一个问题是以正确的格式传递触发器的值,即DateTime Dataype。

1 个答案:

答案 0 :(得分:0)

我会用以下两种方式之一来做这件事:

选项1

在数据进入应用程序时清理数据,将DateTime值设置为null,它们是'1/1/1 12:00 am'。

选项2

在您要绑定的属性的get部分中使用条件,以便DatePicker将该值读取为null,例如:

private DateTime? _selectedDate;
public DateTime? SelectedDate
{
    get { return _selectedDate == DateTime.Parse("01.01.0001") ? null : _selectedDate; }
    set
    {
        if (_selectedDate != value)
        {
            _selectedDate = value;
            NotifyPropertyChanged();
        }
    }
}