2014-01-10 4 views
2

ApplicationBarButton 클릭시 전체 화면 모드로 ListPicker를 열려고합니다. ListPicker는 새 팝업으로 열어야하며 페이지에 표시되어서는 안됩니다.Windows Phone AppBarButton에서 전체 화면 모드로 ListPicker를 엽니 다.

private void OnAppBarButtonClick(object sender, EventArgs e) 
    { 
     ListPicker listPicker = new ListPicker(); 
     listPicker.ExpansionMode = ExpansionMode.FullScreenOnly; 
     this.ContentPanel.Children.Add(listPicker); 

     ListPickerItem item1 = new ListPickerItem() { Content = "Item1" }; 
     ListPickerItem item2 = new ListPickerItem() { Content = "Item2" }; 
     ListPickerItem item3 = new ListPickerItem() { Content = "Item3" }; 
     listPicker.Items.Add(item1); 
     listPicker.Items.Add(item2); 
     listPicker.Items.Add(item3); 

     listPicker.Open(); 
    } 
+0

그 결과는 무엇입니까? 'ListPicker'가 열렸습니까? 사실 ListPicker 컨트롤이 실제로 사용하는 것과 같은 메서드를 사용하는 것이 더 쉽습니다. 'ListPickerPage'를 생성 한 다음, 그것으로'Navigate'를하십시오. ListPicker [here] (http://silverlight.codeplex.com/SourceControl/latest#Release/WindowsPhone71/Microsoft.Phone.Controls.Toolkit/ListPicker/ListPicker.cs)의 출처를 찾을 수 있습니다. –

답변

4

당신은, 당신의 XAML에 ListPicker을 정의 FullScreenOnly에 ExpansionMode를 설정하고 축소하여이 작업을 수행 할 수 있습니다

내 시도했다.

<Grid x:Name="Content"/> 
    <!-- other controls --> 
    <toolkit:ListPicker x:Name="Picker" ExpansionMode="FullScreenOnly" 
         Visibility="Collapsed" 
         FullModeHeader="SELECT" 
         ItemsSource="{Binding MyItems}" 
         SelectionChanged="OnPickerSelectionChanged"> 
     <toolkit:ListPicker.FullModeItemTemplate> 
      <DataTemplate> 
       <TextBlock Margin="0,20" Text="{Binding Name}"/> 
      </DataTemplate> 
     </toolkit:ListPicker.FullModeItemTemplate> 
    </toolkit:ListPicker> 
</Grid> 

그런 다음 코드에서 피커를 엽니 다.

이 샘플에서는 Name 속성이있는 항목의 컬렉션 인 MyItems 속성이있는 DataContext가 있다고 가정합니다. 이 코드는 어떤 기본 코드의 필요없이 나를 위해 작동

+0

XAML 코드에 액세스 할 수 없도록 모든 내 페이지에 대해 Base 클래스를 사용하고 있습니다. 내 List에이 ListPicker를 추가하고 싶지 않기 때문에이 ListPicker 컨트롤을 Base 클래스의 코드에 추가 할 수 있습니까? –

0

,

<toolkit:ListPicker Header="State" 
        x:Name="State" 
        ExpansionMode="FullScreenOnly"> 
    <toolkit:ListPicker.FullModeItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" 
         Margin="0 24 24 24" 
         TextWrapping="Wrap" 
         Style="{StaticResource PhoneTextTitle2Style}" /> 
     </DataTemplate> 
    </toolkit:ListPicker.FullModeItemTemplate> 
</toolkit:ListPicker> 

그냥 목록 State.ItemsSource을 초기화합니다.