Мы используем следующий механизм / синтаксис для связывания команд в XAML:
Command="{Binding CommandAggregator[FooCmd], Mode=OneTime}"
Здесь CommandAggregator
- это объект, для которого вы можете использовать индексатор (с параметром string
) для полученияназад текущая команда.
Регистрация команд с помощью агрегатора вызывает у меня некоторое беспокойство, потому что мы все еще используем магические строки для названий команд, таких как:
this.CommandAggregator.SetCommand("FooCmd", new RelayCommand(execute, canExecute));
Пока я неНе обязательно, как весь этот процесс, я не могу многое изменить.Единственное, что я хотел бы сейчас сделать - это перестать использовать магические строки, сделав их постоянными или static readonly string
объектами внутри статического CommandName
класса.
Но можно ли определить привязку внутриXAML и ссылка на константу (скажем, CommandName.Foo
)?Я думал об использовании {x:Static ...}
, но не знаю, как получить возвращенное значение в индексатор.