public DateTimeElement2(string caption, DateTime date, DialogViewController dvc) : base(caption, null, null)
        {
            this.Dvc  = dvc;
            DateValue = date;

            // create picker elements
            datePicker               = CreatePicker();
            datePicker.Mode          = UIDatePickerMode.DateAndTime;
            datePicker.ValueChanged += delegate {
                DateValue = datePicker.Date;
                Value     = FormatDate(DateValue);
                RefreshValue();

                if (DateSelected != null)
                {
                    DateSelected(this);
                }
            };

            //datePicker.Frame = PickerFrameWithSize (datePicker.SizeThatFits (SizeF.Empty));
            closeBtn = new UIButton(new RectangleF(0, 0, 31, 32));
            closeBtn.SetImage(UIImage.FromFile("Images/closebox.png"), UIControlState.Normal);
            closeBtn.TouchDown += delegate {
                HidePicker();
            };
            datePicker.AddSubview(closeBtn);

            Value = FormatDate(date);

            this.Alignment = UITextAlignment.Left;
        }
		public DateTimeElement2 (string caption, DateTime date, DialogViewController dvc) : base (caption, null, null)
		{			
			this.Dvc = dvc;
			DateValue = date;
			
			// create picker elements
			datePicker = CreatePicker ();
			datePicker.Mode = UIDatePickerMode.DateAndTime; 
			datePicker.ValueChanged += delegate {
				DateValue = datePicker.Date;				
				Value = FormatDate(DateValue);
				RefreshValue();
				
				if (DateSelected != null)
					DateSelected (this);								
			};		
			
			//datePicker.Frame = PickerFrameWithSize (datePicker.SizeThatFits (SizeF.Empty));					
			closeBtn = new UIButton(new RectangleF(0,0,31,32));
			closeBtn.SetImage(UIImage.FromFile("Images/closebox.png"),UIControlState.Normal);
			closeBtn.TouchDown += delegate {
				HidePicker();
			};			
			datePicker.AddSubview(closeBtn);			
						
			Value = FormatDate (date);			
			
			this.Alignment = UITextAlignment.Left;
		}	
        public virtual DelegateDatePicker CreatePicker()
        {
            var picker = new DelegateDatePicker(this)
            {
                AutoresizingMask = UIViewAutoresizing.FlexibleWidth,
                Mode             = UIDatePickerMode.DateAndTime,
                Date             = DateValue
            };

            return(picker);
        }
 protected override void Dispose(bool disposing)
 {
     base.Dispose(disposing);
     if (disposing)
     {
         if (fmt != null)
         {
             fmt.Dispose();
             fmt = null;
         }
         if (datePicker != null)
         {
             datePicker.Dispose();
             datePicker = null;
         }
         if (closeBtn != null)
         {
             closeBtn.Dispose();
             closeBtn = null;
         }
     }
 }
		public virtual DelegateDatePicker CreatePicker ()
		{
			var picker = new DelegateDatePicker (this){
				AutoresizingMask = UIViewAutoresizing.FlexibleWidth,
				Mode = UIDatePickerMode.DateAndTime,
				Date = DateValue
			};
			return picker;
		}
		protected override void Dispose (bool disposing)
		{
			base.Dispose (disposing);
			if (disposing){
				if (fmt != null){
					fmt.Dispose ();
					fmt = null;
				}
				if (datePicker != null){
					datePicker.Dispose ();
					datePicker = null;
				}
				if (closeBtn != null) {
					closeBtn.Dispose();
					closeBtn = null;
				}
			}
		}