zirkelc
zirkelc

Reputation: 1713

Windows Phone open ListPicker in Fullscreen mode on AppBarButton click

I want to open a ListPicker in Fullscreen mode on ApplicationBarButton click. The ListPicker should be opened as new popup and should not be visible in the page.

This was my try:

    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();
    }

Upvotes: 2

Views: 2851

Answers (2)

Nishchith Uchil
Nishchith Uchil

Reputation: 152

this code works for me without the need of any base code,

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

Just initialize State.ItemsSource with a list.

Upvotes: 0

Shawn Kendrot
Shawn Kendrot

Reputation: 12465

You can accomplish this by defining the ListPicker in your xaml, setting the ExpansionMode to FullScreenOnly and making it Collapsed.

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

Then in your code, you open the picker.

Picker.Open();

This samples assumes you have a DataContext with a MyItems property that is a collection of items that has a Name property.

Upvotes: 4

Related Questions