[英]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);
}
最好的祝福!
[編輯] 重要提示 :以上代碼無效。 我只是沒有意識到groupedItemsViewSource是CollectionViewSource 。
從您的代碼中,我認為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.