Skip to content

Commit

Permalink
Merge pull request #807 from Dhvanith/fix-653
Browse files Browse the repository at this point in the history
MultiplePickerField added SelectedItems Change Event
  • Loading branch information
enisn authored Oct 23, 2024
2 parents 2b0ba88 + 01f7a11 commit da3f89f
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/UraniumUI.Material/Controls/MultiplePickerField.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Collections;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Windows.Input;
using UraniumUI.Dialogs;

namespace UraniumUI.Material.Controls;
Expand All @@ -24,6 +25,8 @@ protected set

public override bool HasValue { get => IsBusy || SelectedItems?.Count > 0; }

public event EventHandler<object> SelectedValuesChanged;

protected IDialogService DialogService { get; }

protected FlexLayout chipsHolderLayout;
Expand Down Expand Up @@ -133,6 +136,8 @@ protected virtual void OnSelectedItemsSet(IList oldValue, IList newValue)
private void SelectedItemsChanged(object sender, NotifyCollectionChangedEventArgs e)
{
UpdateState();
SelectedValuesChangedCommand?.Execute(SelectedItems);
SelectedValuesChanged?.Invoke(sender, SelectedItems);
}

public IList ItemsSource { get => (IList)GetValue(ItemsSourceProperty); set => SetValue(ItemsSourceProperty, value); }
Expand All @@ -150,4 +155,11 @@ private void SelectedItemsChanged(object sender, NotifyCollectionChangedEventArg
typeof(IList),
typeof(MultiplePickerField),
propertyChanged: (bindable, oldValue, newValue) => (bindable as MultiplePickerField).OnSelectedItemsSet(oldValue as IList, newValue as IList));

public ICommand SelectedValuesChangedCommand { get => (ICommand)GetValue(SelectedValuesChangedCommandProperty); set => SetValue(SelectedValuesChangedCommandProperty, value); }

public static readonly BindableProperty SelectedValuesChangedCommandProperty = BindableProperty.Create(
nameof(SelectedValuesChangedCommand),
typeof(ICommand), typeof(MultiplePickerField),
defaultValue: null);
}

0 comments on commit da3f89f

Please sign in to comment.