2017-06-15 32 views
0

在UWP中,我需要從列表視圖中獲取當前組的信息。在列表視圖中的UWP訪問主標題組

我的組被定義爲:

<CollectionViewSource x:Name="GroupsList" IsSourceGrouped="True"/> 
<ListView x:Name="LvPeople" ItemsSource="{x:Bind GroupsList.View}"/> 

那是保持當前可見組的信息的屬性?

回答

0

根據你的截圖,我想你真正想要的是獲得第一個可見組頭信息。 AFAIK,目前沒有屬性可以直接獲取當前第一個可見標題。如果您確實需要此功能,您可能需要使用Visual​Tree​Helper獲取組頭中的元素,並嘗試計算它是否可見,但這可能不被推薦。 Here是一個類似的線程,你可以參考。以下方法可以幫助您判斷它是否可見。

private bool IsVisibileToUser(FrameworkElement element, FrameworkElement container) 
{ 
    if (element == null || container == null) 
     return false; 

    if (element.Visibility != Visibility.Visible) 
     return false; 

    Rect elementBounds = element.TransformToVisual(container).TransformBounds(new Rect(0.0, 0.0, element.ActualWidth, element.ActualHeight)); 
    Rect containerBounds = new Rect(0.0, 0.0, container.ActualWidth, container.ActualHeight); 

    return (elementBounds.Top <= element.ActualHeight && elementBounds.Bottom > containerBounds.Top); 
} 

對於完整的樣品請參考this

+0

所以,我必須遍歷所有項目,以檢查它是否可見與此方法? – user3239349

+0

如果是這樣,我有一個問題。因爲每次用戶滾動列表視圖時都會觸發。有大量的項目,有時3000-4000。 – user3239349

+0

@ user3239349,是的,每次用戶滾動時都會觸發。它的效率取決於滾動的頻率,而不是項目的數量。這可能不是一個有效的解決方案,我們也不建議這樣做。但在您的情況下,這可能是唯一的方法,因爲每次用戶滾動第一個可見項目時都會更改。 –