我正在尝试使用
Windows 8.1的新dateTimePicker:
<DatePicker HorizontalAlignment="Left" Margin="401,245,0" Grid.Row="1"
VerticalAlignment="Top" Width="352" Date="{Binding personSingle.persondob,Mode=TwoWay}"/>
当我改变日期时,当我查看persondob的值时,我没有得到我选择的值.
persondob的类型为DateTimeOffset
我需要做什么才能获得我选择的价值?
更新:
<DatePicker x:Name="dtPick" HorizontalAlignment="Left" Margin="401,0" Grid.Row="1"
VerticalAlignment="Top" Width="352" DataContext="{Binding personSingle}"
Date="{Binding personSingle.persondob.Date,Mode=TwoWay}"/>
我从这个链接找到了答案:
http://bretstateham.com/binding-to-the-new-xaml-datepicker-and-timepicker-controls-to-the-same-datetime-value/
您需要编写一个转换器才能使其正常工作:
public class DateTimetoDateTimeOffsetConverter : IValueConverter
{
public object Convert(object value,Type targettype,object parameter,string language)
{
try
{
DateTime date = (DateTime)value;
return new DateTimeOffset(date);
}
catch (Exception ex)
{
return DateTimeOffset.MinValue;
}
}
public object ConvertBack(object value,string language)
{
try
{
DateTimeOffset dto = (DateTimeOffset)value;
return dto.DateTime;
}
catch (Exception ex)
{
return DateTime.MinValue;
}
}
}