日期始终设置为今天的日期,并且不听更改
这是视图模型
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();
答案 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>