0

我的 Windows Phone 7 应用程序中有列表选择器,它工作正常,但是每当我尝试在其中添加更多选项时......它崩溃了我只能在这个列表选择器中添加最多 4 或 5 个选项,我能做些什么吗?

我的工作代码是

xml代码

                <toolkit:ListPicker x:Name="ListPicker" Margin="12,3,12,12" Foreground="#FF00C000" >
                    <toolkit:ListPicker.Items>
                        <toolkit:ListPickerItem Content="Item1"/>
                        <toolkit:ListPickerItem Content="Item2"/>
                    </toolkit:ListPicker.Items>
                </toolkit:ListPicker>

& .cs 代码

            string ListPickerOperator = (this.ListPicker.SelectedItem as ListPickerItem).Content as string;

            switch (ListPickerOperator )
            {
                case "Item1":

                    break;

                case "Item2":

                    break;
            }

但是每当我尝试使此列表更大时,它会在 4 5 个项目后崩溃

4

1 回答 1

2

我认为您应该使用项目模板。您不能显示超过 4 或 5 个项目,因为您必须使用“完整模式模板”。要使用项目模板,你应该做这样的事情。

<toolkit:ListPicker x:Name="ListPicker" Margin="12,3,12,12" Foreground="#FF00C000" SelectionChanged="ListPicker_SelectionChanged" >

        <!--Normal Item template-->
        <toolkit:ListPicker.ItemTemplate>
         <DataTemplate>
            <TextBlock Text="{Binding}"/>
        </DataTemplate>
        </toolkit:ListPicker.ItemTemplate>

        <!--Full Mode template-->
        <toolkit:ListPicker.FullModeItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding}"/>
            </DataTemplate>
        </toolkit:ListPicker.FullModeItemTemplate>
    </toolkit:ListPicker>

要填充列表选择器,您只需使用 itemSource 属性

        //list string 
        List<String> itemsList = new List<String>();

        // create 100 items 
        for (int j = 0; j < 100; j++)
        {
            itemsList.Add("item" + j);
        }

        //itemsource
        this.ListPicker.ItemsSource = itemsList;

要获得 selectedItem 你可以做这样的事情

String ListPickerOperator= ((String)this.ListPicker.SelectedItem);

        switch (ListPickerOperator)
        { 

            case "item1":
                MessageBox.Show("item 1 was selected");
                break;
            case "item2":
                MessageBox.Show("item 2 was selected");
                break;
                /*
                 .
                 * .
                 * .
                 * .
                 * .
              */

        }
于 2013-09-17T18:40:11.773 回答