Skip to content

Instantly share code, notes, and snippets.

@PatrickRainer
Last active October 22, 2020 12:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PatrickRainer/47c27a117597f5168ab899e343b95732 to your computer and use it in GitHub Desktop.
Save PatrickRainer/47c27a117597f5168ab899e343b95732 to your computer and use it in GitHub Desktop.
Xamarin Snippets
using System;
using System.Globalization;
using Xamarin.Forms;
namespace Av_Planner_Demo.Controls.Converters
{
public class DatePickerConverter : IValueConverter
{
DateTime _timePickerDate;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
_timePickerDate = (DateTime) value;
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null) return _timePickerDate;
var datePickerDate = (DateTime) value;
if (datePickerDate.TimeOfDay.Ticks != _timePickerDate.TimeOfDay.Ticks)
{
// correct the date picker value
var result = new DateTime(datePickerDate.Year,
datePickerDate.Month,
datePickerDate.Day,
_timePickerDate.Hour,
_timePickerDate.Minute,
_timePickerDate.Second);
// return, because this event handler will be executed a second time
return result;
}
return datePickerDate;
}
}
}
using System;
using System.Globalization;
using Xamarin.Forms;
namespace Av_Planner_Demo.Controls.Converters
{
public class TimePickerConverter : IValueConverter
{
DateTime _originDate;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
_originDate = (DateTime) value;
return _originDate.TimeOfDay;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null) return _originDate;
var timePickerTime = ((TimeSpan) (value));
//var datePickerDate = ((DateTime)(value));
if (timePickerTime.Ticks != _originDate.TimeOfDay.Ticks)
{
// correct the date picker value
var result = new DateTime(_originDate.Year, _originDate.Month, _originDate.Day) + timePickerTime;
// return, because this event handler will be executed a second time
return result;
}
return timePickerTime;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment