WinRt:Appbar的twoway绑定不起作用

时间:2013-11-26 14:15:04

标签: c# xaml mvvm windows-runtime appbar

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

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

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

1 个答案:

答案 0 :(得分:2)

根据MSDN

  

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

所以你必须解决这个问题。我想到的第一件事就是事件。或者您可以创建派生的AppBar并自己为PropertyChanged实施IsOpen