The program has a button by pressing which the user can reset the values of all settings to the default value. Settings are stored in the SettingsVM object.
There are a lot of settings and in order not to reset each property individually, I simply create a new object.
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); } } The problem is that after practicing the ResetSettings method ResetSettings interface does not change, but remains tied to the "old" object.
How to correct this behavior?