我卡住了我的picker这是正在填充的类别上的pageload .但是我希望正确的类别的产品被选为selectitem,但不工作。
感谢你的帮助。
我的XAML:
<Picker x:Name="Picker_Cats" Title="-- Select Category --" ItemsSource="{Binding AllCats}" ItemDisplayBinding="{Binding CategoryName}" SelectedItem="{Binding SelectedCat,Mode=TwoWay}" Grid.Row="3" Grid.Column="1" TextColor="DarkGray" SelectedIndexChanged="Picker_Cats_SelectedIndexChanged"/>
我的虚拟机:
private ObservableCollection<Category> _AllCats;
public ObservableCollection<Category> AllCats
{
set
{
this._AllCats = value;
OnPropertyChanged();
}
get
{
return this._AllCats;
}
}
private Category _SelectedCat;
public Category SelectedCat
{
set
{
this._SelectedCat = value;
OnPropertyChanged();
}
get
{
return this._SelectedCat;
}
}
public ProdsMngtDetailViewModel(Product product , Category selectedcat)
{
GetCatsAsync();
SelectedCat = selectedcat;
SelectedProduct = product;
CategoriesService cs = new CategoriesService();
AllCats = cs.GetAllCats();
}
我调试了我的应用程序,SelectedCat正在获取我所需的类别值,但问题是选择器没有选择它。
2条答案
按热度按时间kmbjn2e31#
无法直接设置SelectedItem的值。如
它需要包含在选取器的ItemsSource中。
在您的情况下,可以按如下所示对其进行修改
yrefmtwq2#
有没有可能页面在初始化加载时没有直接显示?在这一点上,我遇到了听起来像你的问题的问题。我一次加载所有的内容页面,当我转到一个特定的页面时,页面没有刷新。如果这是问题所在,那么最便宜的解决方案是只初始化在同一时刻请求的页面。(我希望不是这样)