0
votes

I'm using the Microsoft example but making a few changes. I can populate the data in the selection list but after selecting an item it doesn't put it back into the selecteditem. I'm not sure what's wrong. I am trying to replace the sys:string data with a query. What am I doing wrong?

<phone:PhoneApplicationPage 
x:Class="WO_App.Page1"
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:sys="clr-namespace:System;assembly=mscorlib"    
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
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"
mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480"
shell:SystemTray.IsVisible="True">

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

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <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">
        <toolkit:ListPicker x:Name="TestList" Header="Select a part" ExpansionMode="FullscreenOnly">

            <!--This is the data I am trying to replace with binding
            <sys:String>1</sys:String>
            <sys:String>2</sys:String>
            <sys:String>3</sys:String>
            <sys:String>4</sys:String>
            <sys:String>5</sys:String>
            <sys:String>6</sys:String>
            <sys:String>7</sys:String>
            <sys:String>8</sys:String>
            <sys:String>9</sys:String>
            <sys:String>10</sys:String>
            <sys:String>11</sys:String>
            <sys:String>12</sys:String>
            <sys:String>13</sys:String>-->

            <toolkit:ListPicker.FullModeItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Margin="16 21 0 20">
                        <TextBlock Text="{Binding Num}"
                                   Margin="0 0 0 0"
                                   FontSize="43" 
                                   FontFamily="{StaticResource PhoneFontFamilyLight}"/>
                    </StackPanel>
                </DataTemplate>
            </toolkit:ListPicker.FullModeItemTemplate>
        </toolkit:ListPicker>
        <Button Content="Chosen" Height="72" HorizontalAlignment="Left" Margin="284,179,0,0" Name="Button1" VerticalAlignment="Top" Width="160" />
    </Grid>

</Grid>             

Here is the VB code.

Partial Public Class Page1
Inherits PhoneApplicationPage

Public Sub New()
    InitializeComponent()
End Sub

Private Sub PhoneApplicationPage_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded

    Dim source As New List(Of Numbers)

    For x = 1 To 15
        source.Add(New Numbers(x))
    Next x

    Me.TestList.ItemsSource = source

End Sub

Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click

    Dim selectedItem As String = Me.TestList.SelectedItem.ToString
    Dim selectedIndex As String = Me.TestList.SelectedIndex

    MessageBox.Show("you chose " & selectedItem & vbCrLf & selectedIndex)
End Sub

Public Class Numbers
    Public Property Num() As Integer
        Get
            Return m_Num
        End Get
        Set(value As Integer)
            m_Num = value
        End Set
    End Property
    Private m_Num As Integer

    Public Sub New(myNum As Integer)
        Me.Num = myNum
    End Sub

End Class


End Class
1
Welcome to Stack Overflow! Please post your solution as an answer rather than editing it into the question. That makes it more clear what the question and answer are. Thanks!Michael Myers

1 Answers

0
votes

I think u need to use item template also:

 <toolkit:ListPicker.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBlock Text="{Binding Num}"                                   
                               FontSize="28" 
                               FontFamily="{StaticResource PhoneFontFamilyLight}"/>
                </StackPanel>
            </DataTemplate>
        </toolkit:ListPicker.temTemplate>