2017-12-14 24 views
0

リストビューの代替行の色を設定するにはどうすればよいですか?私は各項目をdatatemplateとして設定しています。値をtextblockにバインドします。だから、リストビュー項目を反復することはできません。どのように達成できますか?リストビューの代替行の色 - uwp

<ListView x:Name="list1" Width="300" Height="500" Background="White" Loaded="list1_Loaded" Style="{StaticResource FixedHeaderListViewStyle}"> 
      <ListView.ItemTemplate> 
       <DataTemplate > 
        <Grid Tapped="StackPanel_Tapped" Width="300" Height="38">      
        <Border Width="390" Height="38" HorizontalAlignment="Stretch"> 
        <TextBlock Text="{Binding ItemUserName}" Padding="4" TextWrapping="Wrap" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextAlignment="Left" Foreground="White"/> 
        </Border> 
        </Grid> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 

    private void list1_Loaded(object sender, RoutedEventArgs e) 
    { 
     ListView listView = sender as ListView; 
     ItemCollection ic = listView.Items; 
     int counter = 1; 
     foreach (ListViewItem item in ic) 
     { 
      if (counter % 2 == 0) 
      { 
       item.Background = new SolidColorBrush(Colors.Orange); 
       item.Foreground = new SolidColorBrush(Colors.DarkRed); 
      } 
      else 
      { 
       item.Background = new SolidColorBrush(Colors.OrangeRed); 
       item.Foreground = new SolidColorBrush(Colors.Snow); 
      } 
      counter++; 
     } 

    } 
+0

以下のような溶液を得ましたか。または全く色を含んでいないか?カウンタが正常に動作しているかどうかを調べるためにカウンタをデバッグしてみてください。 – Noel

+0

コントロールはforeach(ListViewItem項目ic)ループに行くつもりはありません – nsds

+0

foreachに質問を変更してもうまくいきません。icにはどのデータもありますか?あなたは例外を取得していますか、それともループに入っていませんか? – Noel

答えて

0

はあなたのリストは `OrangeRed`と` Snow`の色を持っているん

void BackgroundAlternatingListView_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args) 
{ 
    if (args.ItemIndex % 2 != 0) 
    { 
     args.ItemContainer.Background = new SolidColorBrush(_secondColor); 
    } 
    else 
    { 
     args.ItemContainer.Background = new SolidColorBrush(_startColor); 
    } 
} 
0

だけコントローラにはコードが必要とされない、<AlternatingItemTemplate>を使用して、それのために異なる色を設定します。