2012-12-08 311 views
0

我在我的wpf應用程序中有一個數據網格。我希望當用戶點擊數據網格中的任何按鈕時,對應的行應該是紅色的。我認爲我們可以通過使用事件觸發器來實現,但我真的不知道如何使用它。WPF Datagrid - 更改點擊該按鈕的行的背景顏色

<DataGrid x:Name="dgEmp" Grid.Row="1" AutoGenerateColumns="False" CanUserAddRows="False" >   
     <DataGrid.Columns> 
     <DataGridTextColumn Header="Name" Width="*" Binding="{Binding Path=Name}"></DataGridTextColumn> 
     <DataGridTextColumn Header="Age" Width="*" Binding="{Binding Path=Age}"></DataGridTextColumn> 
      <DataGridTemplateColumn Header="Delete" Width="*"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <Button Content="Delete selected row"></Button>        
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
     </DataGrid.Columns> 
    </DataGrid> 

回答

4

您可以設置每排顏色屬性,綁定這行的背景顏色,改變它的的SelectedItem的變化。

<DataGrid.RowStyle> 
    <Style TargetType="DataGridRow"> 
     <Setter Property="Background" Value="{Binding RowColour}" /> 
    </Style> 
</DataGrid.RowStyle> 
+0

不適用於我。同樣沒有 ' \t <的SolidColorBrush顏色= 「{結合RowColor}」/> ' 也不 ' \t <形式的TargetType = 「DataGridRow」> \t \t \t ' 在任何這些情況中,我得到行的背景設置爲形成的顏色。 – Astrogator

+0

@Astrogator你是否得到任何綁定錯誤?你是綁定到集合中的顏色還是祖先還是集合?這確實有用。 – Oli

+0

技巧是:如果'RowColor'的類型爲'Color',則必須將其包裝在''元素中,如http://stackoverflow.com/questions/7339509/的答案中所示。否則'RowColor'必須是'Brush'。 – Astrogator