2016-04-24 70 views
0

いくつか試しましたが、TriggerのAlternationIndexがまったく機能しません。WPF DataGrid交互の行の背景が機能しません

私は

<DataGrid x:Name="dataGrid" Margin="10,40,10,10" ItemsSource="{Binding}" 
    AlternatingRowBackground="DimGray" AlternationCount="1" 

を使用している場合、それは動作しますが、その後IsMouseOverトリガが交互の行では動作しません。

だから私は事の誰もがここに書いてください:そのコード付き

<Style x:Key="DataGridRowStyle" TargetType="{x:Type DataGridRow}"> 
     <Setter Property="Height" Value="22"/> 
     <Style.Triggers> 
      <Trigger Property="ItemsControl.AlternationIndex" Value="0"> 
       <Setter Property="Background" Value="#FF574F4F"/> 
      </Trigger> 
      <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
       <Setter Property="Background" Value="AliceBlue"/> 
      </Trigger> 
      <Trigger Property="IsMouseOver" Value="true"> 
       <Setter Property="Background" Value="#FF8B1515" /> 
      </Trigger> 
     </Style.Triggers> 
... 
... 
<DataGrid x:Name="dataGrid" Margin="10,40,10,10" ItemsSource="{Binding}" IsReadOnly="True" 
        ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}" 
        RowHeaderStyle="{StaticResource DataGridRowHeaderStyle}" 
        CellStyle="{StaticResource DataGridCellStyle}" 
        RowStyle="{StaticResource DataGridRowStyle}".... 


     <DataGrid.Columns> 
      <DataGridTextColumn Header="Name" Binding="{Binding Name}"/> 
      <DataGridTextColumn Header="Description" Binding="{Binding Description}"/> 
      <DataGridTextColumn Header="Author" Binding="{Binding Author}"/> 
     </DataGrid.Columns> 

をAliceBlueは表示されません。すべてを試しましたが、何もしない理由は何も分かりません。 AlternationIndex 0はバックグラウンドとして動作しますが1,2,3ではありません。 バインディングソースとしてDataTableを使用しました いくつかのメソッドを持つ単純なクラスです。私は派手なものは私の上位コードからの戻り値とのDataContextを設定

table.Columns.Add("Name", typeof(string)); 
table.Columns.Add("Description", typeof(string)); 
table.Columns.Add("Author", typeof(string));  
.... 
table.Rows.Add(name, description, author); 

に新すべてであることを、Javaの1.6 SWTから来ている

dataGrid.DataContext = dTable.getTable(); 
それはdoesnの理由

は誰のアイデアを持っていますそれは本当にナッツを動かす。

答えて

1

また、DataGridのプロパティAlternationCount = "2"を設定する必要があります

+0

あなたのために抱擁! :D AlternationCountはAlternatingRowBackgroundでのみ使用されますが、トリガーでは使用されません。ありがとう:) –

関連する問題