簡體   English   中英

如何遍歷GridView中的所有項目?

[英]How do I iterate through all items in GridView?

這可能是最簡單的方法,但是我是C#初學者,所以請多多包涵。

我有一個GridView(在XAML中),並綁定了一些數據。 應用加載時如何遍歷每個項目? 我正在使用XAML / C#構建Win 8.1應用程序。

我的GridView:

    <GridView
        ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
        ItemTemplateSelector="{StaticResource MeetingTileSelector}"
        x:Name="itemGridView">
    </GridView>

我想閱讀每個項目包含的內容(例如圖像或視頻,或僅一行文本),然后相應地應用ColSpan,RowSpan,Height。 我不知道如何遍歷所有項目。

嘗試這個:

foreach (var item in itemGridView.Items)
{
//do stuff with (each) item
}

假設您希望進行此迭代時,您的網格視圖已綁定到其數據源。

檢查此msdn類參考以獲取有關GridView的更多信息。

如果您要更改網格視圖項目的樣式,請使用

itemGridView.ItemContainerStyle

網格視圖的屬性

只需嘗試這些代碼,它應該可以工作。

        foreach (var item in groupedItemsViewSource)
        {
           var gridViewItem = (FrameworkElement)itemGridView.ContainerFromItem(item);
        }

最好的祝福!

[編輯] 重要提示 :以上代碼無效。 我只是沒有意識到groupedItemsViewSourceCollectionViewSource

從您的代碼中,我認為groupedItemsViewSource很可能是這樣定義的:

    <CollectionViewSource x:Key="groupedItemsViewSource"
                          IsSourceGrouped="True"
                          Source="{Binding SomeProperty, Source={StaticResource SomeObject}}"
                          ItemsPath="Items" />

如果是這樣,那么您就不能為了模仿目的而將groupedItemsViewSource強制轉換CollectionViewSource ,而是直接對Items進行模仿:

        foreach (var item in SomeObject.SomeProperty.Items)
        {
           var gridViewItem = (FrameworkElement)itemGridView.ContainerFromItem(item);

          //here you can do something about the gridViewItem(such like iretating its children)
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM