У меня есть элемент управления, который содержит кнопку переключения и всплывающее окно. При нажатии кнопки ToggleButton появляется всплывающее окно. Когда кнопка ToggleButton снята, всплывающее окно должно закрыться. Кроме того, если щелкнуть мышью вдали от всплывающего окна, оно должно закрыться и снять флажок с кнопки-переключателя.
Я установил это, установив для свойства StaysOpen всплывающего окна значение false, а для свойства IsChecked кнопки-переключателя была установлена двусторонняя привязка к свойству IsOpen всплывающего окна.
Все хорошо, за исключением одного случая - при установленной кнопке и открытом всплывающем окне нажатие кнопки не приводит к закрытию всплывающего окна или возвращению кнопки в непроверенное состояние.
Я полагаю, что это должно быть потому, что нажатие кнопки заставляет логику StaysOpen всплывающего окна устанавливать для свойства IsOpen всплывающего окна значение false. В свою очередь, это устанавливает Togglebutton на непроверенный. Это должно произойти до того, как будет обработан мой щелчок по кнопке, поэтому щелчок повторно проверяет кнопку, то есть состояние гонки.
Есть идеи, как мне добиться желаемого поведения?