Страницы

Поиск по вопросам

вторник, 9 июля 2019 г.

Обновление привязки интерфейса

В программе есть кнопка по нажатию которой пользователь может сбросить значения всех настроек к значению по умолчанию. Настройки хранятся в объекте SettingsVM
Настроек достаточно много и чтобы не обнулять каждое свойство по отдельности я просто создаю новый объект.
public class MainVM : BaseVM { public SearchVM SearchVM { get; set; } public static SettingsVM SettingsVM { get; set; }
public MainVM() { SearchVM = new SearchVM(); SettingsVM = new SettingsVM(); ResetSettingsCommand = new RelayCommand(ResetSettings); }
public ICommand ResetSettingsCommand { get; }
private void ResetSettings() { SettingsVM = new SettingsVM(); OnPropertyChanged(String.Empty); } }
Проблема в том, что после отрабатывания метода ResetSettings интерфейс не меняется, а остается привязан к "старому" объекту.
Как исправить такое поведение?


Ответ

Ваше свойство SettingsVM, содержащее настройки, статическое. Для него интерфейс INotifyPropertyChanged не работает. Сделайте свойство нестатическим.
Вам понадобится изменить и код привязки в XAML, для нестатических свойств он другой (проще).

Комментариев нет:

Отправить комментарий