检测ListView是否显示最后一项

时间:2014-04-08 09:33:04

标签: c# .net wpf xaml

这么简单的任务,但我真的找不到办法去做。我需要知道显示 ListView 的用户是否显示最后一项。

有人在Scroll事件中使用事件ScrollBar.Scroll来解决此问题,但这不是我的情况:我需要检查 ListView 最后一项在触发另一个完全不相关的自定义事件时可见。

我使用 TextBox 和自己的方法.GetLastVisibleLineIndex()来完成,这非常方便,但我找不到与 ListView 相似的方法。< / p>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

嗯..我最后解决了!使用此博客中的IsFullyOrPartiallyVisible功能:http://munnaondotnet.blogspot.it/2011/09/is-item-is-visible-in-scroll-viewer.html

我的ListView名称是ListViewData

try
{
    if (IsFullyOrPartiallyVisible((ListBoxItem)listViewData.ItemContainerGenerator.ContainerFromItem(listViewData.Items[listViewData.Items.Count - 1]), listViewData))
    {
        listViewData.SelectedIndex = listViewData.Items.Count - 1;
        listViewData.ScrollIntoView(listViewData.SelectedItem);
    }
}
catch { }

我不想在不到10分钟的时间内提出问题并回答问题,但是我在这里问了几天之后我就在努力解决这个问题:)