1

我有一个非常奇怪的问题。根据我的要求,我需要在按钮单击(命令)上打开顶部应用栏,该按钮位于屏幕的右上角,因此当应用栏打开时它将覆盖按钮区域。我正在使用 MVVM 设计方法,并且我已将“IsOpen”属性绑定到我的视图模型。

<AppBar x:Uid="NavigationBar"  IsOpen="{Binding IsNavBarVisible, Mode=TwoWay}">
       <controls:TopAppNavBarUserControl />
    </AppBar> 

当我点击按钮时,IsNavBarVisible 属性设置为 true 并且我的 appbar 打开。当我点击屏幕的任何其他部分以关闭 appbar 时,会出现问题,appbar 关闭但我的属性未设置为“false”所以下次我点击按钮时,它不会打开 appbar,因为绑定属性已经是“true”。我在这里使用了“双向”绑定,但由于某些未知原因,它无法正常工作 解决方案云正在实现应用栏的“关闭”事件,但我不想转到我的代码后面。欢迎提出建议。

4

1 回答 1

2

根据MSDN

注意:绑定到IsOpen属性没有预期的结果,因为在PropertyChanged设置属性时不会发生通知。

所以你必须解决这个问题。首先想到的确实是事件。或者您可以创建一个派生的 AppBar 并自己PropertyChanged实现IsOpen

于 2013-11-26T14:20:20.943 回答