2013-12-16 2 views
2

이것은 가장 단순 할 수도 있지만 C# 초보자이므로 나와 함께 곰.GridView의 모든 항목을 반복하는 방법은 무엇입니까?

일부 데이터가 바인딩 된 GridView (XAML)가 있습니다. 앱로드시 어떻게 각 항목을 반복 할 수 있습니까? XAML/C#을 사용하여 Win 8.1 응용 프로그램을 빌드하고 있습니다.

내의 GridView :

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

내가 각 항목 (이미지 또는 비디오 또는 텍스트 단지 라인 등)에 포함 된 내용을 읽고 그에 따라 열 병합, ROWSPAN, 높이를 적용하고 싶었다. 모든 항목을 반복하는 방법을 모르겠습니다.

+0

나는 당신의 제목을 편집했다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

2

이 시도 :이 반복 작업을 수행 할 때 그리드 뷰 순간에 데이터 소스에 바인더 제본되어

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

을 부여.

GridView에 대한 자세한 내용은 this msdn class reference을 확인하십시오.

당신이 당신의 표 뷰 항목의 스타일을 변경하고자하는 경우, 그냥이 코드를 시도 그리드 뷰

+0

@BartoszKP 이것은 http://msdn.microsoft.com/library/windows/apps/windows.ui.xaml.controls.gridview.aspx – nestedloop

+0

@ BartoszKP 때문에 나에게 명확하지 않습니다. 제안을 주셔서 감사합니다. 끝난. – nestedloop

+0

이것은 반복을 올바르게 수행합니다. 그러나 item item은 데이터 항목 객체로 반환됩니다. ForeGround, RowSpan 및 ColSpan을 할당 할 수 있도록 Gridview의 Item이 필요합니다. 어떻게해야합니까? –

2

itemGridView.ItemContainerStyle 

속성을 사용하여, 그것을 작동합니다.

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

감사합니다.

[EDIT] 중요 : 위의 코드를 사용할 수 없습니다. 그저 깨닫지 못했습니다. groupedItemsViewSource입니다. CollectionViewSource입니다. 다만,이 경우

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

가, 다음은 purpose.Instead을 iretating에 대한 로 groupedItemsViewSource CollectionViewSource을 캐스팅 할 수 없습니다

코드에서

, 나는 groupedItemsViewSource 가능성이 가장 높은과 같이 정의 할 수있다 생각 iretate 직접 상품 :

 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) 
     } 
+0

그리고'groupedItemsViewSource'는 무엇이되어야합니까? GridView 또는 ?? –

+0

@SimonFisher 데이터 소스를 반복합니다. 바인딩과 반복 시간 사이에 GridView가 변경되면 어떻게 될까요? – nestedloop

+0

@SimonFisher에서 주어진 내용을 반복 처리 할 수 ​​없다는 것은 public Enumerator가 없다는 것입니다. –

관련 문제