【发布时间】:2020-05-24 17:33:18
【问题描述】:
我定义了一个弹出窗口:
<Popup StaysOpen="False" IsOpen="{Binding IsOpen, Mode=TwoWay}" />
我将弹出窗口的IsOpen 属性绑定到视图模型中的IsOpen 属性。
将其设置为true 可以按预期工作并显示弹出窗口(当我在调试时单步执行代码时)。我在按钮的命令事件处理程序中将其设置为true,如下所示:
<Button Command="{Binding OpenPopupCommand}" />
命令只是执行以下代码(它在我的视图模型中):
IsOpen = true;
现在奇怪的是:
在打开弹出窗口后,IsOpen 属性设置器上的断点被值 false 命中,这导致弹出窗口立即关闭。
如果我删除 StaysOpen="False"(然后默认为 True),则不会发生这种情况。
就像弹出窗口正在显示,但它没有获得/失去焦点并关闭。
但我不明白为什么?
【问题讨论】:
-
让我确定我理解:您将一个值设置为 false,然后想知道它设置为 false 并对设置为 false 的值做出反应?
-
@Christopher 不,我没有将其设置为
false,这就是重点 - 在“WPF 系统”中的某处,它被设置为 false,这是由于StaysOpen="False"