2013-11-07 3 views
2

Я использую сборщик списков в приложении WindowsPhone, я не могу загрузить выбранный элемент в списке, выбранное значение показывает первый элемент, который был загружен во время загрузки страницы. Но значение we получить в выборе изменено событие является правильным one.Plz помочь мнеПроблема с ListPicker в WindowsPhone8

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  
} 
+0

уточните свой вопрос: что такое 'lb_countyname' и' lb_city_name' элементы управления - по крайней мере, они не находятся в вашем XAML. Затем, где вы хотите показать выбранное значение (то есть в каком контроле) и как вы его достигнете? Также эта строка не имеет смысла - 'string county = lb_countyname.Text;' ... – Nogard

+0

@ Nogard. Выбранное значение отображаемого списка, которое отображается, не изменяется, но значение am get in selection изменило событие - изменилось значение.I не знаю, почему выбранное значение на дисплее не сбрасывается. – DesertRiver

+0

'выбранное значение отображаемого списка, которое не отображается, - укажите пример этого. Вы меняете 'selectedvalue' из кода или пользовательского интерфейса? если раньше вы должны добавить в свой «ListPicker» следующий атрибут «SelectedItem =» {Binding SelectedCity, Mode = TwoWay} "и изменить свойство' SelectedCity' в вашей ViewModel. Если последнее - просьба указать более подробную информацию – Nogard

ответ

0

Попробуйте это! Это может сработать,

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

Вы должны связать SelectedItem свойства ListBox свойства в вашей ViewModel с помощью TwoWay привязки данных. Если ваше свойство имеет правильный выбранный элемент, который вы хотите, когда загружается ListBox, он будет иметь правильный выбор.

+0

Как я сказал, я добавил режим = twoway в текстовом блоке в шаблоне данных, все еще не работает. – DesertRiver

Смежные вопросы