Я реализовал класс для создания пользовательского элемента управления (например, панели вкладок). Логическое значение IsSelected используется для изменения некоторых свойств этого элемента управления.
public bool IsSelected
{
get => (bool)GetValue(IsSelectedProperty);
set => SetValue(IsSelectedProperty, value);
}
public static readonly BindableProperty IsSelectedProperty =
BindableProperty.Create("IsSelected", typeof(bool), typeof(CustomTabBar), false, BindingMode.TwoWay, propertyChanged: IsSelectedPropertyChanged);
public static void IsSelectedPropertyChanged(BindableObject bindable, object oldValue, object newValue)
{
var control = (CustomTabBar)bindable;
if (control != null)
{
control.IsSelected = (bool)newValue;
control.Update();
}
}
Мне нужно обнаружить изменения в родительском представлении, где используется этот элемент управления, чтобы соответственно отображать контент на IsSelected или нет.
Мне нужно использовать INotifyPropertyChanged? как?
Я использую INotifyPropertyChanged в классе пользовательских элементов управления, и где я использую его в родительском классе, я помещаю слушатель:
PropertyChanged += (object sender, PropertyChangedEventArgs e) =>
{
// logic goes here
Console.WriteLine("A property has changed: " + e.PropertyName);
};
но он не выстрелил.