我有一个非常奇怪的问题。根据我的要求,我需要在按钮上单击(命令)打开顶部应用栏,按钮位于屏幕的右上角,因此当应用栏打开时,它将覆盖按钮区域。我正在使用MVVM设计方法,并且已将“IsOpen”属性绑定到我的viewmodel。
<AppBar x:Uid="NavigationBar" IsOpen="{Binding IsNavBarVisible, Mode=TwoWay}">
<controls:TopAppNavBarUserControl />
</AppBar>
当我点击按钮时,IsNavBarVisible属性设置为true并且我的appbar打开。当我点击屏幕的任何其他部分关闭appbar时,会发生问题, appbar关闭但我的属性没有设置为“false”所以下次点击按钮时它不会打开appbar,因为绑定属性已经是“true”。 我在这里使用了“twoway”绑定,但由于某些未知的原因,它没有缝合工作 解决方案云正在实施应用栏的“已关闭”事件,但我不想转到我的代码。欢迎提出建议。
答案 0 :(得分:2)
根据MSDN:
注意:绑定到
IsOpen
属性没有预期的结果,因为设置属性时不会发生PropertyChanged
通知。
所以你必须解决这个问题。我想到的第一件事就是事件。或者您可以创建派生的AppBar并自己为PropertyChanged
实施IsOpen
。