日期选择器Xamarin表单中的日期未更改

时间:2019-03-20 11:59:16

标签: xamarin.forms

日期始终设置为今天的日期,并且不听更改

这是视图模型

   public TaskReportViewModel()
    {
        from = System.DateTime.Now.ToString("yyyy-MM-dd");

        to = System.DateTime.Now.ToString("yyyy-MM-dd");
    }

    public string _to;

    public string to
    {
        get { return _to; }
        set
        {
            _to = value;
            OnPropertyChange("to");
        }
    }

这是视图

    <DatePicker x:Name="dateFrom" Date="{Binding from}" 
      HorizontalOptions="StartAndExpand" WidthRequest="300" Margin="8" 
            DateSelected="dateFrom_DateSelected">
            <DatePicker.Format>yyyy-MM-dd</DatePicker.Format>
        </DatePicker>

此页面类

        this.BindingContext = new TaskReportViewModel();

        dateFrom.Format = "yyyy-MM-dd";
        dateFrom.BindingContext = new TaskReportViewModel();

        dateTo.Format = "yyyy-MM-dd";
        dateTo.BindingContext = new TaskReportViewModel();

1 个答案:

答案 0 :(得分:0)

不起作用的原因是您将字符串类型绑定到DateTime类型,而应该执行以下操作:

首先,您需要添加以下属性:

private DateTime _toDateTime = DateTime.Now;
public DateTime ToDateTime
    {
        get { return _toDateTime; }
        set { _toDateTime = value; OnPropertyChanged(nameof(ToDateTime)); }
    }

然后按如下所示更改DatePicker:

     <DatePicker x:Name="dateFrom" Date="{Binding ToDateTime, Mode=TwoWay}" 
  HorizontalOptions="StartAndExpand" WidthRequest="300" Margin="8" 
        DateSelected="dateFrom_DateSelected">
                    <DatePicker.Format>yyyy-MM-dd</DatePicker.Format>
     </DatePicker>