diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Controls/BindablePicker.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Controls/BindablePicker.cs deleted file mode 100644 index 64ce79543..000000000 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Controls/BindablePicker.cs +++ /dev/null @@ -1,130 +0,0 @@ -using System; -using System.Collections; -using System.Windows.Input; -using Xamarin.Forms; - -namespace eShopOnContainers.Core.Controls -{ - public class BindablePicker : Picker - { - public static readonly BindableProperty ItemsSourceProperty = BindableProperty.Create("ItemsSource", - typeof(IEnumerable), typeof(BindablePicker), null, propertyChanged: OnItemsSourceChanged); - - public static readonly BindableProperty SelectedItemProperty = BindableProperty.Create("SelectedItem", - typeof(object), typeof(BindablePicker), null, BindingMode.TwoWay, propertyChanged: OnSelectedItemChanged); - - public static readonly BindableProperty ItemSelectedCommandProperty = BindableProperty.Create("ItemSelectedCommand", - typeof(ICommand), typeof(BindablePicker), null); - - public BindablePicker() - { - SelectedIndexChanged += (o, e) => - { - if (SelectedIndex < 0 || ItemsSource == null || !ItemsSource.GetEnumerator().MoveNext()) - { - SelectedItem = null; - return; - } - - var index = 0; - - foreach (var item in ItemsSource) - { - if (index == SelectedIndex) - { - SelectedItem = item; - break; - } - - index++; - } - }; - } - - public IEnumerable ItemsSource - { - get { return (IEnumerable)GetValue(ItemsSourceProperty); } - set { SetValue(ItemsSourceProperty, value); } - } - - public Object SelectedItem - { - get { return GetValue(SelectedItemProperty); } - set - { - if (SelectedItem != value) - { - SetValue(SelectedItemProperty, value); - InternalUpdateSelectedIndex(); - } - } - } - - public ICommand ItemSelectedCommand - { - get { return (ICommand)GetValue(ItemSelectedCommandProperty); } - set { SetValue(ItemSelectedCommandProperty, value); } - } - - public event EventHandler ItemSelected; - - private void InternalUpdateSelectedIndex() - { - var selectedIndex = -1; - if (ItemsSource != null) - { - var index = 0; - - foreach (var item in ItemsSource) - { - string strItem = item?.ToString(); - - if (item != null && SelectedItem != null - && !string.IsNullOrEmpty(strItem) - && item.ToString().Equals(SelectedItem.ToString())) - { - selectedIndex = index; - break; - } - - index++; - } - } - - SelectedIndex = selectedIndex; - } - - private static void OnItemsSourceChanged(BindableObject bindable, object oldValue, object newValue) - { - var boundPicker = (BindablePicker)bindable; - - if (Equals(newValue, null) && !Equals(oldValue, null)) - return; - - boundPicker.Items.Clear(); - - if (!Equals(newValue, null)) - { - foreach (var item in (IEnumerable)newValue) - boundPicker.Items.Add(item.ToString()); - } - - boundPicker.InternalUpdateSelectedIndex(); - } - - private static void OnSelectedItemChanged(BindableObject bindable, object oldValue, object newValue) - { - var boundPicker = (BindablePicker)bindable; - - boundPicker.ItemSelected?.Invoke(boundPicker, - new SelectedItemChangedEventArgs(newValue)); - - if(boundPicker.ItemSelectedCommand != null) - { - boundPicker.ItemSelectedCommand.Execute(newValue); - } - - boundPicker.InternalUpdateSelectedIndex(); - } - } -} \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/FiltersView.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/FiltersView.xaml index 014f33792..9a9d4f04a 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/FiltersView.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/FiltersView.xaml @@ -1,9 +1,8 @@ - +