Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Making the ApplicationBar bindable

0.00/5 (No votes)
14 Mar 2011 1  
How to make the ApplicationBar bindable in a WP7 application.

Capture.png

One of the small issues with using MVVM (Model-View-ViewModel) in a WP7 application is that both ApplicationBarIconButton and ApplicationBarMenuItem do not derive from DependencyObject. This means that I can not bind to any of its properties, making a “true” MVVM application a little hard! I created two simple wrappers for these that make it possible to “bind” to a method.

XML
<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
        <controls:MethodApplicationBarIconButton 
           IconUri="/Images/appbar_button1.png" 
           Text="Button 1" MethodName="ShowMessage" />
        <controls:MethodApplicationBarIconButton 
           IconUri="/Images/appbar_button2.png" 
           Text="Button 2" MethodName="ShowMessage" />
        <shell:ApplicationBar.MenuItems>
            <controls:MethodApplicationBarMenuItem 
              Text="MenuItem 1" MethodName="ShowMessage" />
            <controls:MethodApplicationBarMenuItem 
              Text="MenuItem 2" MethodName="ShowMessage" />
        </shell:ApplicationBar.MenuItems>
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

The only “little” caveat is that you have to set the BindApplicationBar attached property to true:

XML
controls:ApplicationBarHelper.BindApplicationBar="True"

And that’s it...

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here