为什么先前未选择的GridView项目显示为已选中?

时间:2014-06-09 03:23:48

标签: c# gridview winrt-xaml

我有一个Windows 8应用程序,它使用GridView显示一组Items。我使用C#和XAML创建了应用程序。 GridView是多选的。

当用户离开GridView页面时,我使用:navigationHelper_SaveState().

将网格中的哪些项目保存到应用程序状态

当用户返回GridView页面时,我想重新选择之前选择的项目。

我已经确认保存和加载状态都有效。

但是,当用户返回页面时,之前选择的项目不会被选中。在navigationHelper_LoadState().范围内,我这样做是为了选择所有以前选择的项目:

for (int i = 0; i < numPrevSelectedItems; i++) {    
  ItemsGridView.SelectedItems.Add(items[i]);
}

在StackOverflow的其他地方我已经读过使用SelectedItems.Add()应该可行的。但是,它对我不起作用。当用户返回页面时,不会明显选择以前选择的项目。

有趣的是,ItemsGridView.SelectAll();确实有效。

什么是使其正常工作的最佳方式?

1 个答案:

答案 0 :(得分:0)

您可以这样做:

// 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;
}

希望它有所帮助。