首页 > 解决方案 > 如何在 xamarin.form 中的 xaml 中设置 DatePicker 值等于昨天?

问题描述

今天要设置Datexaml 中的属性相等,我们可以使用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)}"/>不工作。

那么有没有办法呢?

标签: xamarindatepicker

解决方案


您可以从控制器设置日期。

<DatePicker x:Name="PostingDatePicker" />

PostingDatePicker.Date = DateTime.Today.AddDays(-1);

另一种方法是从 ViewModel 绑定日期,

Xaml

<DatePicker x:Name="PostingDatePicker" Date="{Binding PostingDate}"/>

视图模型

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();
    }
}

在运行时,您的日期选择器日期将更新为昨天的日期。


推荐阅读