0
在ListView中,我希望所選項目始終可見(在當前視野中)。取消選擇不在視野中的ListView項目
例如: 我在我的ListView中有六個項目。只有(頂部)五個可見。 我選擇第一個項目。當我向下滾動時,此項目不再可見,但仍保持選中狀態。
我想要DEselect從任何當前視圖中刪除的項目。
在ListView中,我希望所選項目始終可見(在當前視野中)。取消選擇不在視野中的ListView項目
例如: 我在我的ListView中有六個項目。只有(頂部)五個可見。 我選擇第一個項目。當我向下滾動時,此項目不再可見,但仍保持選中狀態。
我想要DEselect從任何當前視圖中刪除的項目。
我手動解決它,所以它更多的是一種解決方法。 我只是跟蹤指數...
public class ScrollIndexManager
{
private readonly int _viewableItemsCount;
private int _canScrollUpCount;
private int _canScrollDownCount;
public ScrollIndexManager(int viewableItemsCount)
{
_viewableItemsCount = viewableItemsCount;
}
public bool HasChanged { get; set; }
public int BottomVisibleItemIndex
{
get { return TopVisibleItemIndex + _viewableItemsCount - 1; }
}
private int _topVisibleItemIndex = 0;
public int TopVisibleItemIndex
{
get { return _topVisibleItemIndex; }
set
{
if (value < 0)
{
HasChanged = false;
return;
}
_topVisibleItemIndex = value;
HasChanged = true;
}
}
public void SetCanScrollDown(int totalItemCount)
{
_canScrollDownCount = totalItemCount - _viewableItemsCount;
}
public bool CanScrollUp()
{
return _canScrollUpCount > 0;
}
public bool CanScrollDown()
{
return _canScrollDownCount > 0;
}
public bool Increase()
{
TopVisibleItemIndex--;
return HasChanged;
}
public bool Decrease()
{
TopVisibleItemIndex++;
return HasChanged;
}
public void ScrolledUp()
{
_canScrollUpCount--;
_canScrollDownCount++;
}
public void ScrolledDown()
{
_canScrollUpCount++;
_canScrollDownCount--;
}
}
什麼是商業目的?爲什麼用戶希望某個項目因爲它不在視圖中而未被選中?我認爲你需要實現自己的滾動來了解哪些項目在視圖中。 – Paparazzi 2012-03-28 19:51:44
這是一個有效的問題。我(ab)使用ListView的功能。這不是最終用戶與之交互的控制。 – Jowen 2012-03-31 20:05:27
好的,但我更加困惑。問題陳述讀起來就像您使用ListView作爲UI控件一樣。 – Paparazzi 2012-04-01 15:45:26