public DateTime TheDate
{
get { return _TheDate; }
set
{
_TheDate= value;
NotifyOfPropertyChange("TheDate");
}XAML:
<DatePicker Text="{Binding TheDate}" Grid.Row="4" Grid.Column="1" Width="150" materialDesign:HintAssist.Hint="Put Date here"/>我将01/01/0001作为默认值。如果我试图从DatePicker中更改它,除了年份(仍然是0001)之外,所有的东西都会改变。如果我尝试检索该值,即使DatePicker显示日期和月份已更改为其他值,我仍将获取01/01/0001。
发布于 2018-05-04 01:52:27
首先,您应该使用dependency property。这使得将属性绑定到DateTimePicker非常容易。
public DateTime SelectedDateTime
{
get { return (DateTime)GetValue(SelectedDateTimeProperty); }
set { SetValue(SelectedDateTimeProperty, value); }
}
// Using a DependencyProperty as the backing store for SelectedDateTime. This enables animation, styling, binding, etc...
public static readonly DependencyProperty SelectedDateTimeProperty =
DependencyProperty.Register("SelectedDateTime", typeof(DateTime), typeof(YourModel), new PropertyMetadata(DateTime.Now));现在,如果您查看DependencyProperty.Register()的参数,您可以看到,有一个名为PropertyMetadata (第三个)的参数。这是您的默认值。在我的例子中,它是DateTime.Now。
然后,您可以像绑定其他属性一样将依赖项属性绑定到DateTimePicker
<DatePicker SelectedDate="{Binding SelectedDateTime}"/>希望这能有所帮助。
发布于 2018-05-04 22:23:25
将DatePicker的SelectedValue属性绑定到您的source属性:
<DatePicker SelectedDate="{Binding TheDate}" ... />...and将视图模型中_TheDate字段的值设置为要显示的默认日期:
private DateTime _TheDate = new DateTime(2018, 05, 05); //<-- default date
public DateTime TheDate
{
get { return _TheDate; }
set
{
_TheDate = value;
NotifyOfPropertyChange("TheDate");
}
}https://stackoverflow.com/questions/50159705
复制相似问题