summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.Android/AppCompat/PickerRenderer.cs32
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)