MonoTouch.Dialog
MonoTouch.Dialog copied to clipboard
DurationElement based on TimeElement is too difficult
This almost works:
class DurationElement : TimeElement { double durationValue = 0;
public DurationElement(string caption, double duration): base(caption, DateTime.MinValue)
{
durationValue = duration;
}
public override UIDatePicker CreatePicker ()
{
var picker = base.CreatePicker ();
picker.Mode = UIDatePickerMode.CountDownTimer;
picker.MinuteInterval = 5;
picker.CountDownDuration = durationValue;
picker.ValueChanged += delegate { durationValue = picker.CountDownDuration;};
return picker;
}
public override string FormatDate (DateTime dt)
{
if (durationValue != 0.0)
{
var hour = (int)durationValue / 3600;
var min = (int)(durationValue % 3600)/60;
return String.Format("{0:00}:{1:00}",hour, min);
} else
return " ";
}
}
but accessing the date value in base class, makes it crash:
class MyViewController : UIViewController { DateTimeElement container;
.. .. public override void ViewWillDisappear (bool animated) { base.ViewWillDisappear (animated); Crash ----> container.DateValue = container.datePicker.Date;
The easiest thing would be for xamarin to include a DurationElement directly. Subclassing Date/Time elements is currently cumbersome.