2

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

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    
}
4

2 回答 2

0

尝试这个!它可能有效,

private void list_city_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    int i = (sender as ListBox).SelectedIndex;
    string val = lst_cities[i];
}
于 2013-11-08T07:08:41.123 回答
0

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

于 2013-11-08T08:14:30.383 回答