Если вы переименуете свойство таким образом, привязка не найдет его и не использует установщик CLR-свойства, которое в противном случае будет полностью проигнорировано (по этой причине у вас не должно быть никаких код в нем, как вы делаете), и в вашей обертке есть некоторая логика обновления (которой, как отмечалось, не должно быть), которая, вероятно, действительно обновляет что-то, что связано с привязкой, заставляя вас думать, что она «работает».
Если вам требуется дополнительная логика для изменения свойства, добавьте обратный вызов DependencyPropertyChanged
к регистрации метаданных поля.
... new UIPropertyMetadata(0, SelectedPageChanged);
private static void SelectedPageChanged(object sender, DependencyPropertyChangedEventArgs e)
{
var @this = (DataBaseSettings)sender;
if (NavigationCommands.Refresh.CanExecute(null, @this))
NavigationCommands.Refresh.Execute(null, @this);
}