WPF / XAML: несколько элементов управления, использующих одни и те же события - есть ли более простой способ? - PullRequest
5 голосов
/ 25 августа 2011

У меня есть около 10 текстовых полей, использующих одни и те же события - тогда я просто приведу отправителя к текстовому полю и внесу любые изменения, которые я собираюсь внести в текст. Мне любопытно, есть ли более простой / понятный способ присвоения этих событий методам code-behind? Прямо сейчас я делаю это, просто назначая каждому событию метод, несколько раз, для каждого текстового поля.

Что-нибудь можно сделать с помощью шаблонов или что-то еще? Ниже приведено описание каждого текстового поля. Это просто копирование и вставка, но это много лишних строк кода, и я бы хотел избежать этого, если для этого есть решение WPF.

...
LostFocus="textBox_LostFocus"
MouseDoubleClick="selectText"
GotKeyboardFocus="selectText"
PreviewMouseLeftButtonDown="selectivelyIgnoreMouseButton" />

Заранее спасибо.

1 Ответ

7 голосов
/ 26 августа 2011

Да, есть лучший способ. Создайте стиль для текстовых полей.

<Style TargetType="{x:Type TextBox}">
    <EventSetter Event="LostFocus" Handler="textBox_LostFocus" />
    <EventSetter Event="MouseDoubleClick" Handler="selectText" />
    <EventSetter Event="GotKeyboardFocus" Handler="selectText" />
    <EventSetter Event="PreviewMouseLeftButtonDown" Handler="selectivelyIgnoreMouseButton" />
</Style>

Вот простое сообщение в блоге, объясняющее больше об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...