Вызов INotifyPropertyChanged не обновляет GUI

В классе view модели реализован INotifyPropertyChanged. Команда срабатывает, но интерфейс не обновляется. Поиск в сети не помог решить проблему. Подскажите пожалуйста, как сделать что бы UI обновлялся при вызове команды.

В файле MainWindow.xaml:

<Button Command="{Binding Path=LoadData}" IsEnabled="{Binding Path=IsLoadEnabled}" Margin="3" Content="{Binding Path=LoadMessage}" />

В файле MainWindow.xaml.cs:

    // модель передаю через Dependency injection
public MainWindow(IDataModel model)
{
            InitializeComponent();
 
            this.DataContext = model;
}

Интерфейс IDataModel:

public interface IDataModel : INotifyPropertyChanged
    {
        public string LoadMessage { get; }
 
        public bool IsLoadEnabled { get; }
 
        public bool IsLoading { get; set; }
    }

Реализация интерфейса IDataModel:

public class DataModel : IDataModel
{
    ...
   // метод вызывается по нажатию на кнопку
    private void LoadItemsData()
    {
        IsLoading = true; 

        _loader.LoadFirstItemsSet(100);
        _loader.LoadSecondItemsSet(100);

        IsLoading = false;
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void CallPropertyChanged(string propertyName) 
    {
        PropertyChangedEventArgs args = new PropertyChangedEventArgs(propertyName);
        PropertyChanged?.Invoke(this, args);
    }

    public bool IsLoading
    {
        get 
        {
            return _isLoading;
        }
        set 
        {
            _isLoading = value;

            CallPropertyChanged("IsLoading");
            CallPropertyChanged("IsLoadEnabled");
            CallPropertyChanged("LoadMessage");
        }
    }

    public string LoadMessage => IsLoading ? "Loading..." : "Load";

    public bool IsLoadEnabled => !IsLoading;
    
}

Регистрация в App.xaml.cs

private void ConfigureServices(IServiceCollection services)

{

        ...           
        
        services.AddSingleton(typeof(IDataModel), typeof(DataModel));

        services.AddSingleton(typeof(MainWindow));

}


Ответы (0 шт):