WindowsPhone8中的ListPicker问题

时间:2013-11-07 15:13:15

标签: silverlight windows-phone-7 windows-phone-8

我在WindowsPhone应用程序中使用列表选择器,我无法在列表选择器中加载所选元素,所选值显示在页面加载期间加载的第一个项目,但我们在选择中获得的值已更改事件是正确的.Plz帮帮我

XAML:

<Grid.Resources>
    <DataTemplate  x:Name="picker">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Name}" Margin="0 0 0 0"  FontSize="25" FontFamily="{StaticResource PhoneFontFamilyLight}"/>
        </StackPanel>                      
    </DataTemplate>
    <DataTemplate x:Name="PickerFullModeItemTemplate">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Name}" Margin="0 0 0 0" FontSize="18" FontFamily="{StaticResource PhoneFontFamilyLight}"/>
        </StackPanel>
    </DataTemplate>
</Grid.Resources>

<toolkit:ListPicker ItemTemplate="{StaticResource PickerFullModeItemTemplate}" FullModeItemTemplate="{StaticResource PickerFullModeItemTemplate}"  x:Name="list_city" Grid.Row="3" Grid.Column="5" Grid.ColumnSpan="2"  VerticalAlignment="Top" SelectionChanged="list_city_SelectionChanged" Height="170"  Grid.RowSpan="1" Margin="12,12,12,0"   />

C#:

private void list_city_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    int i = list_city.SelectedIndex;
    string val = lst_cities[i];  //list of cities    
}

2 个答案:

答案 0 :(得分:0)

试试这个!它可能有用,

private void list_city_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    int i = (sender as ListBox).SelectedIndex;
    string val = lst_cities[i];
}

答案 1 :(得分:0)

您需要使用TwoWay数据绑定将ListBox的SelectedItem属性绑定到ViewModel中的属性。如果您的属性在ListBox加载时具有您想要的正确选定项目,那么它将具有正确的选择。