UserControl LostFocus и UpdateSourceTrigger - PullRequest
0 голосов
/ 31 мая 2019

У меня есть UserControl, который содержит три кнопки (ButtonA, ButtonB и ButtonC).Эти три кнопки изменяют свойство зависимостей ValueControl's Value.

Когда я пытаюсь использовать этот элемент управления с привязкой UpdateSourceTrigger = LostFocus, он ведет себя некорректно:

<custom:MyUserControl Value="{Binding SomeProp, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" />

При использовании LostFocus в качестве UpdateSourceTrigger, идеяобновлять значение SomeProp только тогда, когда элемент управления теряет фокус.Проблема заключается в том, что, когда пользователь нажимает кнопку ButtonA, затем нажимает кнопку ButtonB, UserControl.LostFocus и сразу после запуска событий UserControl.GotFocus.Это в свою очередь обновляет значение SomeProp.

Итак, как я могу предотвратить это?При взаимодействии с ButtonA, ButtonB и ButtonC, которые являются потомками MyUserControl, каждый раз при переключении с одной кнопки на другую срабатывает UserControl.LostFocus, и это не то, что я хочу.Мне нужно, чтобы UserControl.LostFocus запускался ТОЛЬКО тогда, когда управление действительно теряет фокус, а не когда его дочерние элементы меняют фокус.

Есть идеи?

...