ВУЗ:
Составители:
Рубрика:
92
6.7.1. Точная настройка текста команды
Способность меню автоматически извлекать текст элемента команды
приводит к вопросу о том, а можно ли такое же делать с другими классами
ICommandSource, например, с элементом управления Button. Можно, но
для этого потребуются дополнительные усилия. В частности, для много-
кратного использования текста команды существуют два способа. Первый
подразумевает извлечение текста прямо из статического объекта команды.
XAML позволяет выполнить подобное с помощью расширения Static. Ни-
же показан пример кода, который извлекает имя команды "New" (Создать)
и использует его в качестве текста для кнопки:
<Button Margin="5" Padding="5"
Command="ApplicationCommands.New"
ToolTip="{x:Static ApplicationCommands.New}">New</Button>
Проблема этого варианта решения состоит в том, что он предполага-
ет просто вызов на объекте команды метода ToString(), что позволяет по-
лучить имя команды, но не ее текст. В случае команд, состоящих из мно-
жества слов, лучше использовать текст, а не имя команды, поскольку
текст включает пробелы.
Поэтому предпочтительным решением считается применение выра-
жения привязки данных. Эта привязка данных является немного необыч-
ной, поскольку подразумевает привязку к текущему элементу, захват ис-
пользуемого объекта Command и извлечение его свойства Text. Весь не-
обходимый для этого код показан ниже:
<Button Margin="5" Padding="5" Command="ApplicationCommands.New"
Content = "{Binding RelativeSource={RelativeSource Self}, Path=Command.Text}
">
</Button>
6.7.2. Прямой вызов команды
При запуске команды применение классов, реализующих
ICommandSource, не является единственным возможным вариантом. Ко-
манду можно также и просто вызывать напрямую из любого обработчика
событий с помощью метода Execute(). В этом случае требуется всего лишь
Страницы
- « первая
- ‹ предыдущая
- …
- 91
- 92
- 93
- 94
- 95
- …
- следующая ›
- последняя »