2012-12-08 5 views
0

wpf 응용 프로그램에 데이터 격자가 있습니다. 나는 사용자가 datagrid의 버튼을 클릭 할 때 해당 행이 빨간색이어야한다고 원합니다. 나는 우리가 이벤트 트리거를 사용하여 그것을 할 수 있다고 생각하지만 실제로 그것을 사용하는 방법을 모른다.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 ' 도 ' \t <스타일은 TargetType = "DataGridRow"> \t \t 다음 각 호의 어느 하나에 해당하는 경우에 \t ' 난의 색상을 형성하기 위해 설정 한 행의 배경을 얻을. – Astrogator

+0

@Astrogator 바인딩 오류가 발생하고 있습니까? 컬렉션 또는 조상 또는 컬렉션의 색상에 바인딩하고 있습니까? 이것은 효과가있다. – Oli

+0

트릭은 :'RowColor'의 타입이'Color' 타입이라면, http://stackoverflow.com/questions/7339509/에 대한 응답에서 볼 수 있듯이,' '엘리먼트로 감싸 야합니다. 그렇지 않으면'RowColor'는'Brush'이어야합니다. – Astrogator

관련 문제