WinRt: двусторонняя привязка для Appbar не работает

У меня очень странная проблема. В соответствии с моим требованием мне нужно открыть верхнюю панель приложения по щелчку кнопки (команде), кнопка находится в правом верхнем углу экрана, поэтому, когда панель приложения откроется, она закроет область кнопки. я использую методологию проектирования MVVM, и я привязал свойство «IsOpen» к моей модели представления.

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

когда я нажимаю кнопку, для свойства IsNavBarVisible устанавливается значение true и открывается моя панель приложений. Проблема возникает, когда я нажимаю на любую другую часть экрана, чтобы закрыть панель приложений, панель приложений закрывается, но для моего свойства не установлено значение " false", поэтому в следующий раз, когда я нажму кнопку, панель приложения не откроется, так как свойство привязки уже имеет значение "true". Я использовал здесь «двустороннюю» привязку, но по какой-то неизвестной причине она не работает. Облако решений реализует событие «Закрыто» панели приложения, но я не хочу переходить к моему коду. Предложения приветствуются.


person Muhammad    schedule 26.11.2013    source источник


Ответы (1)


Согласно MSDN. :

Примечание. Привязка к свойству IsOpen не дает ожидаемых результатов, поскольку уведомление PropertyChanged не появляется при установке свойства.

Таким образом, вы должны работать над этой проблемой. Первое, что приходит на ум, это действительно событие. Или вы можете создать производную AppBar и реализовать PropertyChanged для IsOpen самостоятельно.

person ChrisK    schedule 26.11.2013