【问题标题】:WinRt : twoway binding for Appbar does not workWinRt:Appbar 的双向绑定不起作用
【发布时间】:2013-12-11 17:43:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# xaml mvvm windows-runtime appbar


    【解决方案1】:

    根据MSDN:

    注意:绑定到IsOpen 属性不会产生预期的结果,因为设置该属性时不会出现PropertyChanged 通知。

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

    【讨论】:

      猜你喜欢
      • 2012-02-14
      • 2014-04-10
      • 2011-10-14
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多