private void RestoreListViewScroll(DetailsListView listView, TabModel tab, ListViewScroll listScroll)
{
if (listView.VirtualListSize == 0)
return;
switch (listScroll.ScrollLockMode)
{
case ScrollLockMode.FixedToTop:
listView.EnsureVisible(0);
break;
case ScrollLockMode.FixedToBottom:
listView.EnsureVisible(listView.VirtualListSize - 1);
break;
case ScrollLockMode.FixedToItem:
var topIndex = listScroll.TopItemStatusId != null ? tab.IndexOf(listScroll.TopItemStatusId.Value) : -1;
if (topIndex != -1)
listView.TopItem = listView.Items[topIndex];
break;
case ScrollLockMode.None:
default:
break;
}
}