INotifyPropertyChanged в объекте класса не изменяет интерфейс
Есть у меня класс, который отвечает за распаковку диапозонов IP-адресов. И при выборе файла для его работы он сохраняет в себе свойство с путем файла. А вот его это свойство привязано в View части.
В свою очередь все конторолирует ViewModel, в которой и создается экземпляр класса IPParser, суть которого выше.
xaml
<TextBlock Text="{Binding ipParser.Filepath}" HorizontalAlignment="Center"/>
ViewModel
public MainViewModel() - конструктор
{
IPParser = new IPParser();
}
public ICommand OpenFileForParseIPRangesCommand { get; } - (здесь по нажатию кнопки вызывается метод из объекта)
private void OnOpenFileForParseIPRangesCommandExecuted(object p)
{
IPParser.Load();
}
IPParser class
public class IPParser : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string PropertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));
}
private string _Filepath;
public string Filepath
{
get { return _Filepath; }
set
{
_Filepath = value;
OnPropertyChanged();
}
}
public bool Load()
{
OpenFileDialog ofd = new OpenFileDialog
{
Filter = ".txt|*.txt",
};
if (ofd.ShowDialog() == false) return false;
Filepath = ofd.FileName;
return true;
}
}
ViewModel подключена, если биндить к ее свойствам, то все изменяется. А при изменении IPParser.Filepath не изменяется значение в Не пойму, в чем причина. Отладкой узнал, что значение изменяется в объекте, PropertyName тоже подается верный - "Filepath"
UPD объявление самой модели во ViewModel
#region Models
SessionController SessionController;
public Scaner Scaner;
public IPParser ipParser;
#endregion