Я не вижу никаких экземпляров в вашем фрагменте XAML, но если вы объявите его непосредственно в Application.Resources
(без установки x:Shared
в false
), то обычно будет только один экземпляр через всего приложения, но это не может быть гарантировано, так как мы имеем дело со словарем, поэтому вы всегда можете поменять экземпляр, найденный с помощью этого конкретного ключа.
В этом случае нет никакой реальной необходимости делать поле статичным (если вы подозреваете, что подделка словаря может потребоваться), во всяком случае, я бы создал команду статически и только для чтения в статическом классе, где она может быть легкий доступ (используя x:Static
в XAML и обычный путь доступа в коде позади).
Также уже есть ApplicationCommands
, которые можно использовать вместо вашей пользовательской команды. И вы также можете добавить свой собственный класс App
, который затем может быть связан с использованием {Binding ExitCommand, Source={x:Static local:App.Current}}
, может быть немного более многословным, но команда ближе к месту, где он принадлежит, и у вас также, безусловно, будет правильный экземпляр.