C# 列表选择器在选择所选项目时出错
我有一个listpicker控件,它有一个膳食列表。此控件使用以下代码填充,其中ViewModelMein返回类型为的集合 之后,我从数据库中获取饮食数据,这也有一个列名MealId。现在,当我尝试使用该mealid设置listpicker控件的选定项时,它会给我一个错误,即“SelectedItem必须始终设置为有效值”。下面是设置listpicker的选定项的函数 和XAML代码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
<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。