@@ -8,6 +8,8 @@ namespace Microsoft.Maui.Handlers
88 public partial class DatePickerHandler : ViewHandler < IDatePicker , MauiDatePicker >
99 {
1010 DatePickerDialog ? _dialog ;
11+ EventHandler ? _setDateLater ;
12+ EventHandler ? _dismiss ;
1113
1214 protected override MauiDatePicker CreatePlatformView ( )
1315 {
@@ -52,6 +54,8 @@ protected override void DisconnectHandler(MauiDatePicker platformView)
5254 {
5355 if ( _dialog != null )
5456 {
57+ _dialog . DismissEvent -= _dismiss ;
58+ _dialog . ShowEvent -= _setDateLater ;
5559 _dialog . Hide ( ) ;
5660 _dialog . Dispose ( ) ;
5761 _dialog = null ;
@@ -144,19 +148,17 @@ void ShowPickerDialog(int year, int month, int day)
144148 _dialog = CreateDatePickerDialog ( year , month , day ) ;
145149 else
146150 {
147- EventHandler ? setDateLater = null ;
148- EventHandler ? dismiss = null ;
149- setDateLater = ( sender , e ) => { _dialog ! . UpdateDate ( year , month , day ) ; _dialog . ShowEvent -= setDateLater ; } ;
150- _dialog . ShowEvent += setDateLater ;
151- dismiss = ( sender , e ) =>
151+ _setDateLater = ( sender , e ) => { _dialog ! . UpdateDate ( year , month , day ) ; _dialog . ShowEvent -= _setDateLater ; } ;
152+ _dialog . ShowEvent += _setDateLater ;
153+ _dismiss = ( sender , e ) =>
152154 {
153155 if ( VirtualView != null )
154156 {
155157 VirtualView . IsFocused = false ;
156158 }
157- _dialog . DismissEvent -= dismiss ;
159+ _dialog . DismissEvent -= _dismiss ;
158160 } ;
159- _dialog . DismissEvent += dismiss ;
161+ _dialog . DismissEvent += _dismiss ;
160162 }
161163
162164 _dialog . Show ( ) ;
0 commit comments