public void SelectPage(IPage page)
{
if (_listView == null)
return;
foreach (ListViewItem listViewItem in _listView.Items)
{
var itemPage = listViewItem.Tag as IPage;
if (itemPage == null)
continue;
if(itemPage.Id == page.Id) //actual page object may change between book loads, but the id is consistent
{
try
{
_intentionallyChangingSelection = true;
listViewItem.Selected = true;
ItemWhichWouldPrecedeANewPageInsertion = listViewItem;
listViewItem.EnsureVisible();
}
finally
{
_intentionallyChangingSelection = false;
}
return;
}
}
// actually, this is common because we might not yet have been told to update our list Debug.Fail("Did not find item to select");
}