У меня есть приложение в Silverlight и WPF. Ошибка возникает только в Silverlight, но в WPF используется тот же код.
В моем приложении есть RibbonBar
, с несколькими RibbonGroups
. В каждом RibbonGroup
есть хотя бы один RibbonButton
. Один из них RibbonGroups
также содержит четыре TextBox
.
Каждый TextBox
имеет свой OnLostFocus
-Handler. Когда я оставляю TextBox
, соответствующий обработчик поднимается.
Теперь, (1) я щелкаю в один из этих текстовых полей и (2) затем нажимаю на кнопку RibbonButton, OnLostFocus поднимается, и после этого появляется раскрывающееся меню RibbonButton. Все в порядке.
После этого (3) я нажимаю на другую кнопку Ribbon. Снова поднять OnLostFocus, хотя - imho - не должно.
Так продолжается и продолжается. После каждого действия TextBox сохраняет (или возвращает обратно, не знает) фокус, и это вызывает повышение обработчика OnLostFocus.
В WPF тот же код больше не вызывает OnLostFocus. Только один раз, когда он действительно потерял фокус.
Кто-нибудь знает, почему это странное поведение в Silverlight. Что действительно отличается от WPF, возможно, мне просто нужно установить свойство, значение по умолчанию не отличающееся от WPF.
Заранее спасибо.