gpt4 book ai didi

c# - 当 DatePickerTextBox 在 Datepicker 控件上为空时,在 ViewModel 中获取一个空值

转载 作者:行者123 更新时间:2023-12-03 10:32:38 25 4
gpt4 key购买 nike

我有一个 DatePicker,它的 SelectedDate在名为 VMStartDate 的 ViewModel 中绑定(bind)到具有双向绑定(bind)的 CLR 属性.当 UI 打开时,日期选择器上显示的默认日期是今天的日期。

查看.xaml

<DatePicker Width="160" Height="35" 
SelectedDate="{Binding Path=VMStartDate,Mode=TwoWay,
TargetNullValue={x:Static sys:DateTime.Now}}">
<DatePicker.Resources>
<Style TargetType="{x:Type DatePickerTextBox}">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="PART_TextBox" Height="28" BorderBrush="Transparent"
VerticalContentAlignment="Center" VerticalAlignment="Center"
BorderThickness="0" FontSize="14"
Text="{Binding Path=SelectedDate, StringFormat='dd/MM/yyyy',
RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}"
Validation.ErrorTemplate="{x:Null}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.Resources>
</DatePicker>

ViewModel.cs
private DateTime _VMStartDate;

public DateTime VMStartDate
{
get { return _VMStartDate; }
set { SetProperty(ref _VMStartDate, value); }
}

我想要 DatePicker显示一个空字符串,直到用户选择一个日期或删除它。

最佳答案

正如 giliduck 在评论中建议的那样,制作 DateTime可以为空,会给你想要的效果。这就是我自己广泛使用的方法,将 DateTime 的默认值设置为空单元格。这样,您的属性(property)将如下所示。

private DateTime? _VMStartDate = null;

public DateTime? VMStartDate
{
get { return _VMStartDate; }
set { SetProperty(ref _VMStartDate, value); }
}

关于c# - 当 DatePickerTextBox 在 Datepicker 控件上为空时,在 ViewModel 中获取一个空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50763146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com