我有一个控件,其中包含一个Togglebutton和一个Popup。当单击Togglebutton时,会弹出Popup。当取消选中ToggleButton时,Popup应关闭。此外,单击Popup之外的区域也应导致其关闭,并导致ToggleButton取消选中。
我通过将Popup的StaysOpen属性设置为false,并将ToggleButton的IsChecked属性双向绑定到Popup的IsOpen属性来设置它们。
一切都很好,除了一个情况-当按钮被选中且Popup打开时,单击按钮不会导致Popup关闭,也不会使按钮变为取消选中状态。
我认为这是因为单击按钮会导致Popup的StaysOpen逻辑将Popup的IsOpen属性设置为false。反过来,这会将ToggleButton设置为未选中。这必须在我的按钮单击被处理之前发生-因此单击重新选中按钮,即竞争条件。
您有什么想法可以实现我想要的行为吗?
我通过将Popup的StaysOpen属性设置为false,并将ToggleButton的IsChecked属性双向绑定到Popup的IsOpen属性来设置它们。
一切都很好,除了一个情况-当按钮被选中且Popup打开时,单击按钮不会导致Popup关闭,也不会使按钮变为取消选中状态。
我认为这是因为单击按钮会导致Popup的StaysOpen逻辑将Popup的IsOpen属性设置为false。反过来,这会将ToggleButton设置为未选中。这必须在我的按钮单击被处理之前发生-因此单击重新选中按钮,即竞争条件。
您有什么想法可以实现我想要的行为吗?
ToggleButton
,而是想点击其他所有东西。 - svick