要将xaml中的Date
属性设置为今天等于,我们可以使用Today
属性,如下所示:
xmlns:system="clr-namespace:System;assembly=mscorlib"
<DatePicker Date="{x:Static system:DateTime.Today}"/>
我尝试使用AddDays
方法进行设置,但无济于事。
<DatePicker Date="{x:Static system:DateTime.Today.AddDays(-1)}"/>
不起作用。
那有办法吗?
答案 0 :(得分:0)
您可以从控制器设置日期。
<DatePicker x:Name="PostingDatePicker" />
PostingDatePicker.Date = DateTime.Today.AddDays(-1);
另一种方法是从ViewModel绑定日期,
Xaml
<DatePicker x:Name="PostingDatePicker" Date="{Binding PostingDate}"/>
ViewModel
public DateTime PostingDate {get; set;}
PostingDate = DateTime.Today.AddDays(-1);
更新后的答案:
如果您只想通过XAML更新日期,则可以使用转换器,
<DatePicker x:Name="PostingDatePicker" Date="{Binding PostingDate, Converter={local:DateConverter}}"/>
创建一个继承IValueConverter的类,
public class DateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
try
{
return DateTime.Today.AddDays(-1);
}
catch (Exception)
{
return null;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
在运行时,日期选择器的日期将更新为昨天的日期。
答案 1 :(得分:0)
经过一些讨论,我找到的最佳答案是使用如下帮助器:
在xaml中:
xmlns:helpers="clr-namespace:Helpers"
<DatePicker Date="{x:Static helpers:DateTimeHelper.Yesterday}"/>
助手是:
namespace Helpers
{
public class DateTimeHelper {
public static System.DateTime Yesterday
{
get { return System.DateTime.Today.AddDays(-1); }
}
}
}