【发布时间】:2016-09-21 19:39:52
【问题描述】:
我有一个带有 DatePicker 的视图,该视图绑定到我的 ViewModel 中的 DateTime 属性。但是,日期值始终显示为 null,即使我选择了与默认值不同的值。有人在 DatePicker 上取得了成功吗?如果是这样,我做错了什么?
相关代码:
查看:
<DatePicker x:Name="startDateUpdatePick" HorizontalAlignment="Left" Height="23" VerticalAlignment="Top" Width="120" Margin="1.5"
Text="{Binding SelectedProjectData.ProjectStartDate, UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}"/>
视图模型:
public PSViewModel()
{
SelectedProjectData = new Project();
}
型号:
public class Project : INotifyPropertyChanged
{
private DateTime _projectStartDate;
public DateTime ProjectStartDate
{
get { return _projectStartDate; }
set
{
_projectStartDate = value;
RaisePropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged([CallerMemberName] string caller = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(caller));
}
}
编辑:XAML 绑定到不可为空的日期时间,但我在同一设置中有其他日期选择器绑定到可空的日期时间,它们也不起作用。
【问题讨论】:
-
DatePicker 的 DataContext 是什么?而且您的 ViewModel 甚至不会编译,所以谁知道那里实际发生了什么。项目看起来正确。
-
另外,给你一份 Snoop。您可以在运行时轻松调查绑定错误。
-
SelectedProjectData 是公共财产吗?您的视图的 DataContext 是否设置为 PSViewModel 的实例?
标签: c# xaml mvvm datepicker