这似乎应该很容易,但我还没有找到一个简单的解决方案。我知道我可以有CalendarDatePicker,DatePicker等,或者我可以有一个TimePicker。我可以将它们放在我的页面上并绑定到两个单独的属性,这些属性本身会通知我关心的DateTime属性,该属性从第一个选择器获取日期(年,日,月),以及从第二个选择器获取的时间。 强调文字 但这似乎完全是hackish。有没有办法在选择日期和时间时绑定到单个DateTime对象? I.E.我真的只想将DatePicker / CalendarDatePicker和TimePicker组合到一个绑定到单个DateTime对象的逻辑XAML控件中。
答案 0 :(得分:1)
你可以尝试我写的这个简单的功能来结合你的日期和时间。它的作用是删除DatePicker中的默认时间,并将TimePicker中的时间添加到该变量。
private static DateTime CombineDateAndTime(DateTime dateObj,DateTime timeObj)
{
DateTime newDateTime;
//get timespan from the date object
TimeSpan spanInDate = dateObj.TimeOfDay;
//subtract it to set date objects time to 0:00
dateObj = dateObj.Subtract(spanInDate);
//now add your newTime to date object
newDateTime = dateObj.Add(timeObj.TimeOfDay);
//return new value
return newDateTime;
}
希望这有帮助。
答案 1 :(得分:0)
// code behind
DateTime date;
TimeSpan time
{
get => date.TimeOfDay;
set
{
date = date.AddTicks(value.Ticks);
}
}
// xaml
<DatePicker Date={x:Bind date, Converter={StaticResource DateTimeToOffsetConverter}}"
/>
<TimePicker Time={X:Bind time}" />
答案 2 :(得分:-1)
我发现以下代码很有用: -
int rex01= t21.Date.Value.Year;
int rex02 = t21.Date.Value.Month;
int rex03 = t21.Date.Value.Day;
int rex04 = t22.Time.Hours;
int rex05 = t22.Time.Minutes;
int rex06 = t22.Time.Seconds;
DateTime T02 = new DateTime(rex01, rex02, rex03, rex04, rex05, rex06);
请注意t21是DatePicker,t22是TimePicker。 目前用于SQLite和UWP。