縞々

ついでなので、縞々のサンプルも書いておきます。ぐぐればすぐ見つかるけど、それでも書いておきます。


(昨日の T4 つながりw)

<AlternationConverter x:Key="BackgroundConverter">
  <SolidColorBrush>white</SolidColorBrush>
  <SolidColorBrush Color="#dee7f5" />
</AlternationConverter>

<Style x:Key="stripe" TargetType="{x:Type ListViewItem}">
  <Setter Property="Background" 
    Value="{Binding RelativeSource={RelativeSource Self},
      Path=(ItemsControl.AlternationIndex),
      Converter={StaticResource BackgroundConverter}}"/>
  <Setter Property="HorizontalContentAlignment" Value="Stretch"/> <!-- これは右揃えのため -->
</Style>

...

<ListView ItemsSource="{Binding}"
          AlternationCount="2"
          ItemContainerStyle="{StaticResource stripe}">
  <ListView.View>
    <GridView>
      <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=Name}"/>
      <GridViewColumn Header="Point">
        <GridViewColumn.CellTemplate>
          <DataTemplate>
            <TextBlock TextAlignment="Right"
              Text="{Binding Path=Point}" />
          </DataTemplate>
        </GridViewColumn.CellTemplate>
      </GridViewColumn>
    </GridView>
  </ListView.View>
</ListView>

AlternationConverter で数に対応するブラシを定義。例では0なら白、1なら#dee7f5。二色を指定して、交互に色を変えます。数→色という対応さえできれば何色でもできます。単純に対応できなければ、この例をヒントにコンバータを書けばできると思います。
ListView というか GridView を縞々にするので、ListViewItem の背景を設定するスタイルを定義。RelativeSource はなかなかややこしい。WPF の外側のきらびやかなイメージを支える内臓とか血管みたいなもの。かなりグロテスク。
閑話休題。最後に ListView に AlternationCount を設定。二色の交互なので2を設定。ItemContainerStyle に ListViewItem に対するスタイルを設定して終了。AlternationIndex が 0,1 と交互に繰り返すことで背景色に変換されます。

参考: いつも参考にさせていただいております(^^)