2

我想在 ApplicationBarButton 单击时以全屏模式打开 ListPicker。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();
    }
4

2 回答 2

4

您可以通过在 xaml 中定义 ListPicker、将 ExpansionMode 设置为 FullScreenOnly 并使其折叠来完成此操作。

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

然后在您的代码中,打开选择器。

Picker.Open();

此示例假定您有一个具有 MyItems 属性的 DataContext,该属性是具有 Name 属性的项的集合。

于 2014-01-10T23:58:44.683 回答
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。

于 2014-05-15T18:08:01.150 回答