Технически, вы все еще не привязываете к статическому свойству - вы привязываете к экземпляру класса, который использует статическое поле в качестве резервного хранилища. Это будет работать в некоторой степени, но ...
Существует фундаментальная проблема: если к одному и тому же бэк-хранилищу привязано более одного элемента (что похоже на то, что вы пытаетесь сделать, поскольку вы намеренно делаете его статичным), уведомления INotifyPropertyChanged
будут происходит только в том случае, если вы в данный момент связаны.
Скажем, например, у вас было два элемента UserControl, расположенных рядом друг с другом, оба связаны с ViewModel, содержащей этот код. Когда элемент управления A устанавливает это свойство, элемент управления B никогда не будет получать уведомления (поскольку выполняется INotifyPropertyChanged A), поэтому он будет отображаться не синхронизировано.
Если вы действительно хотите попытаться сделать что-то подобное, вам, вероятно, лучше иметь в своем хранилище резервных копий класс, который реализует INotifyPropertyChanged, и «пузыриться» в свойстве через ваш класс ViewModel. Таким образом, все экземпляры будут уведомлены правильно, и вы сможете решить любые проблемы многопоточности / синхронизации, которые могут возникнуть при необходимости.
В качестве альтернативы вы можете рассмотреть возможность использования единственного свойства экземпляра (с полем экземпляра) внутри Singleton . Это также даст вам общие уведомления о вашем "статическом" свойстве.