Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表选择器在选择所选项目时出错_C#_Xaml_Windows Phone 8_Windows Phone 8.1 - Fatal编程技术网

C# 列表选择器在选择所选项目时出错

C# 列表选择器在选择所选项目时出错,c#,xaml,windows-phone-8,windows-phone-8.1,C#,Xaml,Windows Phone 8,Windows Phone 8.1,我有一个listpicker控件,它有一个膳食列表。此控件使用以下代码填充,其中ViewModelMein返回类型为的集合 之后,我从数据库中获取饮食数据,这也有一个列名MealId。现在,当我尝试使用该mealid设置listpicker控件的选定项时,它会给我一个错误,即“SelectedItem必须始终设置为有效值”。下面是设置listpicker的选定项的函数 和XAML代码 <toolkit:ListPicker Name="lpMeal" Height="60" Item

我有一个listpicker控件,它有一个膳食列表。此控件使用以下代码填充,其中ViewModelMein返回类型为的集合

之后,我从数据库中获取饮食数据,这也有一个列名MealId。现在,当我尝试使用该mealid设置listpicker控件的选定项时,它会给我一个错误,即“SelectedItem必须始终设置为有效值”。下面是设置listpicker的选定项的函数

和XAML代码

 <toolkit:ListPicker Name="lpMeal" Height="60" ItemsSource="{Binding}" VerticalAlignment="Bottom" Background="Black" FullModeHeader="Select your Meal" Foreground="White" ExpansionMode="FullScreenOnly" Margin="5,0">
                    <toolkit:ListPicker.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Name="listpickerStackpannel" >
                                <!--<TextBlock Text="{Binding mealId}" Visibility="Collapsed"></TextBlock>-->
                                <TextBlock Text="{Binding mealName}" TextAlignment="Center" FontFamily="Times New Roman" FontSize="30"></TextBlock>
                            </StackPanel>
                        </DataTemplate>
                    </toolkit:ListPicker.ItemTemplate>
                    <toolkit:ListPicker.FullModeItemTemplate>
                        <DataTemplate>
                            <StackPanel Name="listpickerStackpannel" Margin="10">
                                <!--<TextBlock Text="{Binding mealId}" Visibility="Collapsed"></TextBlock>-->
                                <TextBlock Text="{Binding mealName}" TextAlignment="Center" FontFamily="Times New Roman" FontSize="30"></TextBlock>
                            </StackPanel>
                        </DataTemplate>
                    </toolkit:ListPicker.FullModeItemTemplate>
                </toolkit:ListPicker>

详细说明Chubosaurus软件的评论

您需要将SelectedItem设置为LPFine ItemsSource绑定到的列表中的值。就你而言:

lpMeal.SelectedItem = DietViewModel.GetDefault().GetItem(ID);

因此,您将SelectedItem设置为其ItemsSource中列表的一个成员。

您只能将其设置为ItemsSource的一个项目(模型)。不是任意数字,还是相同的错误。我理解你的意思,但问题是listpicker使用膳食列表填充,而diet视图模型返回diet类型的数据。因此,这些是不同的视图模型,返回不同类型的集合,但我想做的是,因为饮食列表具有mealId,所以我想让膳食列表选择器将所选项目设置为mealId。