Я думаю, вы можете сказать DatePicker "Просто оставьте компонент времени, когда вы меняете дату", используя конвертер :). Когда вы связываете DateTime с DatePicker, конвертер сохраняет значение, а ConvertBack возвращает без изменений часть времени.
public class DateConverter : IValueConverter
{
private DateTime _original;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
_original = (DateTime)value;
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
DateTime date = ((DateTime) value);
return new DateTime(date.Year, date.Month, date.Day, _original.Hour, _original.Minute, _original.Second);
}
}
XAML:
<sdk:DatePicker SelectedDate="{Binding Date, Mode=TwoWay,
Converter={StaticResource dateConverter}}" />
<input:TimePicker Value="{Binding Date, Mode=TwoWay}"/>