diff options
Diffstat (limited to 'Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs b/Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs index 492b553b..9e81cf2d 100644 --- a/Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs +++ b/Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs @@ -93,25 +93,27 @@ namespace Xamarin.Forms.Platform.Android.AppCompat void OnClick() { Picker model = Element; - using (var builder = new AlertDialog.Builder(Context)) + if (_dialog == null) { - builder.SetTitle(model.Title ?? ""); - string[] items = model.Items.ToArray(); - builder.SetItems(items, (s, e) => ((IElementController)model).SetValueFromRenderer(Picker.SelectedIndexProperty, e.Which)); - - builder.SetNegativeButton(global::Android.Resource.String.Cancel, (o, args) => { }); + using (var builder = new AlertDialog.Builder(Context)) + { + builder.SetTitle(model.Title ?? ""); + string[] items = model.Items.ToArray(); + builder.SetItems(items, (s, e) => ((IElementController)model).SetValueFromRenderer(Picker.SelectedIndexProperty, e.Which)); - _dialog = builder.Create(); - } + builder.SetNegativeButton(global::Android.Resource.String.Cancel, (o, args) => { }); - _dialog.SetCanceledOnTouchOutside(true); - _dialog.DismissEvent += (sender, args) => - { - _dialog.Dispose(); - _dialog = null; - }; + _dialog = builder.Create(); + } + _dialog.SetCanceledOnTouchOutside(true); + _dialog.DismissEvent += (sender, args) => + { + _dialog.Dispose(); + _dialog = null; + }; - _dialog.Show(); + _dialog.Show(); + } } void RowsCollectionChanged(object sender, EventArgs e) |