ARTICLE

Using Listpicker in Windows Phone 7

Posted by Nguyen Pham Articles | Windows Phone 8 September 14, 2011
In this article I will talk about Listpicker in Windows Phone.
Reader Level:

Introduction

ListPicker is a new control in the Silverlight Toolkit for Windows Phone. It is for user's to choose another item like Combobox but ListPicker has more features than a Combobox. When you have little item about 1->4 it'll show data as a Combobox and if more item Listpicker will show data as a ListBox.

In this article I will talk about Listpicker in Windows Phone.

Fundamental

First, you must install Silverlight tool for Windows Phone . you can download it here http://silverlight.codeplex.com/releases/view/71550

Now we're creating Windows Phone Application Project.

Listpicker in Windows Phone

Next, we right click on References -> choose Add Refrences -> choose Microsoft.Phone.Controls.Toolkit :

Listpicker in Windows Phone

Then we go to MainPage.xaml and built a sample User Interface but after that we declare

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"

To use Control.

  • Now we add some Control to MainPage, they're TextBlock,TextBox and ListPicker:

    Listpicker in Windows Phone
     
  • To Use ListPicker we must Define ItemTemplate and FullModeItemTemplate :
     

       <phone:PhoneApplicationPage.Resources>

            <DataTemplate x:Name="lpkItemTemplate">

                <TextBlock Text="{Binding Country}" />

            </DataTemplate>

            <DataTemplate x:Name="lpkFullItemTemplate">

                <TextBlock Text="{Binding Country}" />

            </DataTemplate>

        </phone:PhoneApplicationPage.Resources>

Full XAML Code :

<phone:PhoneApplicationPage

    x:Class="ListPickerDemo.MainPage"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"

    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"

   

    xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"

   

    FontFamily="{StaticResource PhoneFontFamilyNormal}"

    FontSize="{StaticResource PhoneFontSizeNormal}"

    Foreground="{StaticResource PhoneForegroundBrush}"

    SupportedOrientations="Portrait" Orientation="Portrait"

    shell:SystemTray.IsVisible="True">

 

    <phone:PhoneApplicationPage.Resources>

        <DataTemplate x:Name="lpkItemTemplate">

            <TextBlock Text="{Binding Country}" />

        </DataTemplate>

        <DataTemplate x:Name="lpkFullItemTemplate">

            <TextBlock Text="{Binding Country}" />

        </DataTemplate>

    </phone:PhoneApplicationPage.Resources>

    <!--LayoutRoot is the root grid where all page content is placed-->

    <Grid x:Name="LayoutRoot" Background="Transparent">

        <Grid.RowDefinitions>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="*"/>

        </Grid.RowDefinitions>

 

        <!--TitlePanel contains the name of the application and page title-->

        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">

            <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>

            <TextBlock x:Name="PageTitle" Text="ListPicker" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>

        </StackPanel>

 

        <!--ContentPanel - place additional content here-->

        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

            <Grid.RowDefinitions>

                <RowDefinition Height="Auto"/>

                <RowDefinition Height="Auto"/>

                <RowDefinition Height="Auto"/>

                <RowDefinition Height="Auto"/>

                <RowDefinition Height="Auto"/>

                <RowDefinition Height="*"/>

            </Grid.RowDefinitions>

            <TextBlock Text="Name" Margin="14,0,0,0"/>

            <TextBox Grid.Row="1" Name="txtName"/>

            <TextBlock Text="Ages " Grid.Row="2" Margin="14,0,0,0"/>

            <TextBox Name="txtAge" Grid.Row="3"/>

            <TextBlock Text="Country" Grid.Row="4" Margin="14,0,0,0" />

            <toolkit:ListPicker FullModeItemTemplate="{Binding lpkFullItemTemplate}"

                Grid.Row="5" ItemTemplate="{Binding lpkItemTemplate}"

                x:Name="lpkCountry"/>

            <Button Content="Submit" Grid.Row="5" Height="72" HorizontalAlignment="Left" Margin="284,87,0,0" Name="btnSubmit" Click="btnSubmit_Click"
             VerticalAlignment="Top" Width="160" />

        </Grid>

    </Grid>

</phone:PhoneApplicationPage>

And Now we go to MainPage.xaml.cs and create a Array String as a sample Data, and add is for ListPicker ItemSource Properties:

C# Code :
 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

using Microsoft.Phone.Controls;

 

namespace ListPickerDemo

{

    public partial class MainPage : PhoneApplicationPage

    {

        String[] Country = { "Viet Nam","Japan",

                              "China","USA",

                              "Poland","Brazil",

                              "Singapore","Philipin","Malaysia"};

        public MainPage()

        {

            InitializeComponent();

            this.lpkCountry.ItemsSource = Country;

        }

 

        private void btnSubmit_Click(object sender, RoutedEventArgs e)

        {

            String _Content = String.Format("Name: {0} \nAges: {1}\nCountry: {2}",

                txtName.Text,txtAge.Text,lpkCountry.SelectedItem);

            MessageBox.Show(_Content);

        }

    }

}

Now We Run Apps to view Resuilt :

  • When you have a little Country

    Listpicker in Windows Phone
     

  • And More Contry (FullModeItemTamplate will run):

    Listpicker in Windows Phone
     

  • And when I Submit :

    Listpicker in Windows Phone

Login to add your contents and source code to this article
post comment
     

do you have code in vb.net?

Posted by Dimas Aritona May 09, 2013

I was really stuck with ListPicker until I came across this page. Thanks!

Posted by Liam Mar 09, 2013

Nice to See you ! Dinesh and Dhannajay ^^ I will try my best

Posted by Nguyen Pham Sep 19, 2011

Nice work done by MSP :)

Posted by Dhananjay Kumar Sep 18, 2011

Good work, Welcome to the Mindcracker Community.

Posted by Dinesh Beniwal Sep 15, 2011
COMMENT USING
PREMIUM SPONSORS
DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and add new content to existing PDF documents from within your applications.
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.
Join a Chapter