C# 为什么以前选定的GridView项不显示为选定项?
我有一个Windows8应用程序,它使用GridView显示项目集合。我已经用C和XAML创建了这个应用程序。GridView是多选项的 当用户离开GridView页面时,我使用:navigationHelper\u SaveState将网格中的哪些项目保存到应用程序状态 当用户返回GridView页面时,我想重新选择以前选择的项目 我已经确认保存和加载状态都可以工作 但是,当用户返回页面时,不会选择以前选择的项目。从navigationHelper_LoadState中。我这样做是为了选择以前选择的所有项目:C# 为什么以前选定的GridView项不显示为选定项?,c#,gridview,winrt-xaml,C#,Gridview,Winrt Xaml,我有一个Windows8应用程序,它使用GridView显示项目集合。我已经用C和XAML创建了这个应用程序。GridView是多选项的 当用户离开GridView页面时,我使用:navigationHelper\u SaveState将网格中的哪些项目保存到应用程序状态 当用户返回GridView页面时,我想重新选择以前选择的项目 我已经确认保存和加载状态都可以工作 但是,当用户返回页面时,不会选择以前选择的项目。从navigationHelper_LoadState中。我这样做是为了选择以前
for (int i = 0; i < numPrevSelectedItems; i++) {
ItemsGridView.SelectedItems.Add(items[i]);
}
我在StackOverflow的其他地方读到,使用SelectedItems.Add应该可以工作。然而,这对我不起作用。当用户返回页面时,不会看到以前选择的项目
有趣的是,ItemsGridView.SelectAll;确实有效
让它正常工作的最佳方法是什么?您可以这样做:
// Get the selected rows
DataGridViewSelectedRowCollection SelectedRowsCollection = ItemsGridView.SelectedRows;
// Clear your ItemsGridView selected rows (Just for testing the following code)
ItemsGridView.ClearSelection();
// Get your previous selected rows again.
foreach (DataGridViewRow item in SelectedRowsCollection)
{
int idx = ItemsGridView.Rows.IndexOf(item);
ItemsGridView.Rows[idx].Selected = true;
}
希望有帮助。我解决了这个问题。我做了一个实验,从GridView本身向ItemsGridView.SelectedItems添加了一个项目。这起作用了。这让我意识到,因为我是通过捕获应用程序状态的JSON字符串重新序列化所选项目,所以SelectedItems没有指向GridView中的实际项目实例。