代码之家  ›  专栏  ›  技术社区  ›  Ahmed Salah

如何在xamarin.form的xaml中将datepicker值设置为“昨天”?

  •  0
  • Ahmed Salah  · 技术社区  · 7 年前

    设置 Date 今天可以使用的xaml equal中的属性 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)}"/> 不起作用。

    有办法吗?

    2 回复  |  直到 7 年前
        1
  •  0
  •   Ahmed Salah    7 年前

    经过一些讨论,我找到的最佳答案是使用如下帮助者:

    在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); }
            }
        }
    }
    
        2
  •  0
  •   Selvarathinam Vinoch    7 年前

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

    <DatePicker x:Name="PostingDatePicker" />
    
    PostingDatePicker.Date = DateTime.Today.AddDays(-1);
    

    另一种方法是从视图模型绑定日期,

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

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

    推荐文章