ListView Column 리스트 색상 및 개수 질문드립니다

제가 지금 ListView 에서 ItemContainerStyle를 사용해서

   <Style x:Key="listViewStyle_NoTriggers" TargetType="ListViewItem">

       <Style.Triggers>
           <Trigger Property="ItemsControl.AlternationIndex" Value="0">
               <Setter Property="Background" Value="Red"/>
               <Setter Property="Margin" Value="0,0,0,0"/>
               <Setter Property="Padding" Value="0"/>
               <Setter Property="BorderBrush" Value="Transparent"/>
               <Setter Property="BorderThickness" Value="0"/>
               <Setter Property="Height" Value="17"/>
               <Setter Property="HorizontalAlignment" Value="Left"/>
               <Setter Property="HorizontalContentAlignment" Value="Center"/>

           </Trigger>
           <Trigger Property="ItemsControl.AlternationIndex" Value="1">
               <Setter Property="Background" Value="Blue"/>
               <Setter Property="Margin" Value="0,0,0,0"/>
               <Setter Property="Padding" Value="0"/>
               <Setter Property="BorderBrush" Value="Transparent"/>
               <Setter Property="BorderThickness" Value="0"/>
               <Setter Property="Height" Value="17"/>
               <Setter Property="HorizontalAlignment" Value="Left"/>
               <Setter Property="HorizontalContentAlignment" Value="Center"/>

           </Trigger>
       </Style.Triggers>
   </Style>

위 스타일을 쓰고있습니다.

지금은 리스트에 항목이 추가될때마다 트리거를 통해 빨강-파랑-빨강-파랑… 순으로 계속 추가되고있긴한데
여기서 이제 추가하기 전부터 빨강-파랑-빨강-파랑 순으로 보여지게 하고싶은데 어떻게 해야하나요?

그리고 지금은 ListView의 Height 크기를 임의로 지정해서 보여주고싶은 column 라인수를 세세하게 조정하고있는데
혹시 Height를 통해서가 아닌 원하는 컬럼 갯수를 지정하는 방법이 있을까요?

예를들어 5개의 리스트를 보여줄때 Height의 크기를 조정해서 보여주는게 아닌 리스트 갯수에 맞게 크기 조정해주는 그런게 있을까요?