2016-06-08 97 views
0

如何获取(或循环)GridView中的所有项目?下面的XAML生成的可点击我需要能够遍历这些元素并更新它们的值项/点击在GridView中获取项目Windows 8

<GridView 
    x:Name="itemGridView" 
    AutomationProperties.AutomationId="ItemsGridView" 
    AutomationProperties.Name="Items" 
    TabIndex="1" 
    Grid.RowSpan="2" 
    Padding="116,136,116,46" 
    ItemsSource="{Binding Source={StaticResource itemsViewSource}}" 
    SelectionMode="None" 
    IsSwipeEnabled="false"> 
    <GridView.ItemTemplate> 
     <DataTemplate> 
      <Grid HorizontalAlignment="Left" Width="250" Height="250" Tapped="Grid_Tapped" RightTapped="Grid_RightTapped"> 
       <Border Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}"> 
        <Image Source="{Binding ImageURL}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/> 
       </Border> 
       <StackPanel VerticalAlignment="Bottom" Background="{ThemeResource ListViewItemOverlayBackgroundThemeBrush}"> 
        <TextBlock Text="{Binding Name}" Foreground="{ThemeResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource BaseTextBlockStyle}" Height="60" Margin="15,0,15,0" FontWeight="SemiBold"/> 
        <TextBlock Text="{Binding CurrentState}" Foreground="{ThemeResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource BaseTextBlockStyle}" TextWrapping="NoWrap" Margin="15,0,15,10" FontSize="12"/> 
       </StackPanel> 
      </Grid> 
     </DataTemplate> 
    </GridView.ItemTemplate> 
</GridView> 

的网格。这是我尝试这样做,但不能

foreach (var item in itemGridView.Items) 
{ 
    var _Container = itemGridView.ItemContainerGenerator.ContainerFromItem(item); 

    //Once i have the contrainer i know i can access its childern but this line of code throws error 
} 

enter image description here

有没有一种办法能够做什么,我想在这里做什么?

或者如果在Windows 8中有RowDataBound事件?

回答

0

如果您想更新值,则不需要获取容器。例如你有一个数据类:

public class mydemotable 
{ 
    public string CurrentState { get; set; } 
    public string Name { get; set; } 
} 

这里是例如如何通过不断变化的名称值的元素填补这一类环:

 mydemotable demoitem = new mydemotable 
     { 
      Name = "Skywalker", 
      CurrentState = "lalala" 
     }; 

     ObservableCollection<mydemotable> items = new ObservableCollection<mydemotable>(); 
     items.Add(demoitem); 

     itemGridView.DataContext = items; 


     foreach (mydemotable item in itemGridView.Items) 
     { 
      item.Name = "Alex"; 
     } 
+0

返回null。 – Salman