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