gpt4 book ai didi

c# - 在 WPF 应用程序中绑定(bind)可为 null 的日期时间

转载 作者:行者123 更新时间:2023-11-30 19:39:15 26 4
gpt4 key购买 nike

我有一个 wpf 应用程序,其中我有这个属性绑定(bind)到 datepicker

public Nullable<System.DateTime> dpc_date_engagement { get; set; }

所以我添加了一个转换器:

 public class DateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null)
return ((DateTime)value).ToShortDateString();
return String.Empty;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
string strValue = value.ToString();
DateTime resultDateTime;
return DateTime.TryParse(strValue, out resultDateTime) ? resultDateTime : value;
}
}

在 XAML 文件中:

                     <DatePicker >
<DatePicker.Text>
<Binding Path="dpc_date_engagement" UpdateSourceTrigger="PropertyChanged">
<Binding.Converter>
<converter:DateConverter/>
</Binding.Converter>
</Binding>
</DatePicker.Text>
</DatePicker>

问题是当日期为空时,显示的文本是 1/1/0001。

  • 如何修复我的代码以显示空字符串而不是 01/01/0001,用于空值?

最佳答案

我发现在 DatePicker 中处理 nullable DateTime 字段的最简单方法是设置 TargetNullValue=''

在 XAML 文件中:

<DatePicker Text={Binding dpc_date_engagement, Mode=TwoWay, TargetNullValue='', UpdateSourceTrigger=PropertyChanged} />

关于c# - 在 WPF 应用程序中绑定(bind)可为 null 的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28561190/

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