65.9K
CodeProject is changing. Read more.
Home

MVVM Light Toolkit and Windows Phone : Bindable AppBar

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1 vote)

Aug 22, 2014

CPOL

1 min read

viewsIcon

8440

downloadIcon

92

This tip/trick shows you how to add bindable AppBar with MVVM Light Toolkit in Windows Phone 8

Introduction

A big problem when choosing to develop with MVVM in Windows Phone is that the native Application Bar is not bindable, so we can't get/set attributes or commands.

So, the following code snippets will show you how to add a bindable AppBar in Windows phone 8 using MVVM Light Toolkit.

Background

  • Windows Phone
  • MVVM
  • Nuget Packages

Using the code

Thanks to the CodePlex open source project "Bindable Application Bar", we can get the control that will help us achieving our goal.

P.S : There are many solutions like the Bindable AppBar Appliation project, but I choose this one beacause I think it's the easiest one.

Let's add some code!

1. Adding Nuget Package

We can add a reference to that project via its Nuget Package.

 

2. Adding Reference :

Then, we add the reference in our View.

xmlns:bar="clr-namespace:BindableApplicationBar;assembly=BindableApplicationBar"

 

3. Adding AppBar :

Finally, we add the AppBar control. We can use it the same way as we use the native AppBar.

<bar:Bindable.ApplicationBar>
    <bar:BindableApplicationBar >
        <bar:BindableApplicationBarButton IconUri="/Assets/AppBar/add.png"
                                          Command="{Binding ButtonClick}"
                                          Text="Button" />
            <bar:BindableApplicationBar.MenuItems>
            <bar:BindableApplicationBarMenuItem Command="{Binding MenuItemClick}"
                                                Text="Menu Item" />
        </bar:BindableApplicationBar.MenuItems>
    </bar:BindableApplicationBar>
</bar:Bindable.ApplicationBar>

 

That's it! I hope it was helpful.

History

This is the first version of this tip/trick. If you have any problem/question, feel free to comment.

You're welcome. Enjoy!