2015-01-28 2 views
1

Я пишу Windows Phone 8.1 App (WinRT)Отображение списка стран в Windows Phone 8,1

Я хочу, чтобы отобразить список стран в регистрационной странице, из которых пользователь может выбрать один. В Windows Phone 7 у нас был LongListSelector.

Что входит в комплект поставки Windows Phone 8.1 (WinRT).

На самом деле, я хочу, чтобы пользователи нажимали на этот элемент управления, и он должен открыться в fullscreenmode.

Я смущен между ListView, ListBox, Semanticzoom

настоящее время я использую:

<ListView 
               Name="UserCountry_ListPicker" 
              FullModeHeader="Select Country:" 
            SelectedIndex="-1" 
            Foreground="{StaticResource DefaultTheme_DarkBlueColor}" 
            FontWeight="ExtraLight" 
            Margin="0,5,0,0" 
            BorderBrush="{StaticResource DefaultTheme_DarkBlueColor}" 
            BorderThickness="0.2,0.2,0.2,3" 
            VerticalContentAlignment="Bottom" 
            VerticalAlignment="Bottom" 
            Background="{StaticResource DefaultTheme_TextBoxBackground_Light}" 
              SelectionChanged="UserCountry_ListPicker_SelectionChanged"> 
              <ListView.ItemTemplate> 
               <DataTemplate> 
                <StackPanel 
               Orientation="Horizontal" 
               Margin="0,0,0,0"> 
                 <Border 
                Background="{StaticResource DefaultTheme_DarkBlueColor}" 
                Width="28" 
                Height="28"> 
                  <TextBlock 
                 Text="{Binding CountryWithCodesGroupItem_Symbol}" 
                 FontSize="14" 
                 FontWeight="ExtraLight" 
                 Foreground="WhiteSmoke" 
                 HorizontalAlignment="Center" 
                 VerticalAlignment="Center"/> 
                 </Border> 
                 <TextBlock 
                Text="{Binding CountryWithCodesGroupItem_Name}" 
                FontWeight="ExtraLight" 
                Margin="12 0 0 0" 
                FontSize="21"/> 
                </StackPanel> 
               </DataTemplate> 
              </ListView.ItemTemplate> 
              <ListView.FullModeItemTemplate> 
               <DataTemplate> 
                <StackPanel 
               Orientation="Horizontal" 
               Margin="20,5,0,5" 
                > 
                 <Border 
                Background="{StaticResource DefaultTheme_DarkBlueColor}" 
                Width="68" 
                Height="68"> 
                  <TextBlock 
                 Text="{Binding CountryWithCodesGroupItem_Symbol}" 
                 FontSize="26" 
                 FontWeight="ExtraLight" 
                 Foreground="WhiteSmoke" 
                 HorizontalAlignment="Center" 
                 VerticalAlignment="Center"/> 
                 </Border> 
                 <TextBlock 
                Text="{Binding CountryWithCodesGroupItem_Name}" 
                FontWeight="ExtraLight" 
                  Name="CountryNames" 
                Margin="12 0 0 0" 
                  Foreground="{StaticResource DefaultTheme_DarkBlueColor}" 
                FontSize="26" 
                 VerticalAlignment="Center"/> 
                </StackPanel> 
               </DataTemplate> 
              </ListView.FullModeItemTemplate> 

              <ListView.HeaderTemplate> 
               <DataTemplate> 
                <StackPanel 
            Orientation="Horizontal" 
               Margin="0,0,0,-5"> 
                 <TextBlock 
                Name="UserCountry_Label" 
                FontSize="25" 
                FontWeight="ExtraLight" 
                Foreground="{StaticResource DefaultTheme_DarkBlueColor}" 
                Text="Country"> 
                 </TextBlock> 
                 <Image Source="ms-appx:///Images/Login_RegistrationPage/athteriskRedForm_01.png" 
                 Margin="3,0,0,0"> 
                 </Image> 
                </StackPanel> 
               </DataTemplate> 
              </ListView.HeaderTemplate> 
             </ListView> 

Но он показывает список открытых на стр. Не могу ли я иметь его закрытия на странице, как это: example image

ответ

2

Может быть, вы будете рассмотреть вопрос об использовании ListPickerFlyout:

<Button Content="Choose country"> 
    <Button.Flyout> 
     <ListPickerFlyout ItemsSource="{Binding CountryList}" Placement="Full" ItemsPicked="Items_PickedEven"> 
     <ListPickerFlyout.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding CountryName}"/> 
      </DataTemplate> 
     </ListPickerFlyout.ItemTemplate> 
     </ListPickerFlyout> 
    </Button.Flyout> 
</Button> 

Вы также можете думать о using general Flyout и определить его содержание, как ListView, ListBox или другой.

+0

Как будет изменен выбор listpicker? –

+0

@AtifShabeer Взгляните на документацию и попробуйте - у вас есть некоторые полезные свойства * SelectedItem (s) *, также после того, как вы выбираете элемент, а затем * ItemsPicked * event уволен, возможно, вы также можете сделать что-то в закрытом событии. – Romasz

+0

Я использовал ListView вместо кода выше. Он отображает список стран на странице и позволяет прокручивать мою страницу регистрации. Могу ли я иметь этот ListView в режиме с минимальным/закрытым доступом на странице? –

0

Что касается различия между тремя обеспокоены, ListView существу нравится ListBox однако он также имеет View свойство, которое ListBox не имеет. Свойство View полезно для указания предопределенного способа отображения элементов.

A SemanticZoom Управление часто содержит в себе управление ListView и позволяет переключаться между двумя различными видами набора данных списка.

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