我有一个包含 Togglebutton 和 Popup 的控件。单击 ToggleButton 时,将出现弹出窗口。取消选中 ToggleButton 时,弹出窗口应关闭。此外,在弹出窗口之外单击应该会导致它关闭,并导致 Togglebutton 取消选中。
我通过将 Popup 的 StaysOpen 属性设置为 false 并将切换按钮的 IsChecked 属性设置为双向绑定到 Popup 的 IsOpen 属性来进行设置。
一切都很好,除了一种情况 - 选中按钮并打开弹出窗口,单击按钮不会导致弹出窗口关闭,或者按钮返回未选中状态。
我相信这一定是因为单击按钮会导致 Popup 的 StaysOpen 逻辑将 Popup 的 IsOpen 属性设置为 false。反过来,这会将 Togglebutton 设置为未选中。这必须在我点击按钮之前发生 - 所以点击重新检查按钮,即竞争条件。
知道如何获得我想要的行为吗?