2012-10-24 5 views
1

2 개의 데이터 격자에 두 개의 데이터 테이블을 표시하고 있습니다 (왼쪽 및 오른쪽으로 호출 합니다). 그러나 내가 원하는 것은 사용자가 선택에 따라 두 개의 행 (왼쪽 및 오른쪽)을 비교하고 셀이 다를 때 배경을 변경하는 것입니다.WPF : 런타임시 DataGrid 셀의 배경색을 변경하는 방법

샘플 :

왼쪽
| A | B | C |
| 1 | 2 | 3 |
| 1 | 2 | 3 |
| 1 | 2 | 3 |

오른쪽
| A | B | C |
| 1 | 2 | 4 |
| 1 | 2 | 3 |
| 1 | 2 | 3 | XAML에서

내 DataGrids를는 다음과 같다 : <DataGrid Grid.Column="0" x:Name="leftData" HorizontalAlignment="Stretch" > </DataGrid>

그리고 코드에서 나는 DataTable을에 데이터 그리드 바인딩 오전 : 사용자가 왼쪽과 오른쪽, 세포의 첫 번째 행을 선택

TableRows = new DataTable(); 
leftData.ItemsSource = TableRows; 

을 C 열에 빨간색 배경이 표시되어야합니다.

WPF에서 더 나은 방법은 무엇입니까? WPF에서 DataGrid를 사용하여이 작업을 수행 할 수 있습니까?

답변

1

가는 곳의 더 나은 생각을 할 수있는 당신이 더 게시 할 경우, 현재 가지고있는 논리 내에서이를 구현 할 필요가 분명히

//dataControl would be the name of your control in the XAML 
var cell = dataControl.Cells[columnIndex,rowIndex]; 

cell.Background = new SolidBrush(Colours.Red); 

같은 뭔가를 할 수 마지막으로 해결책을 찾았습니다. DataGrid 컨트롤은 DataGridCell을 가져 오는 방법을 제공하지 않지만 DataGridCellsPresenter를 가져 오려면 VisualTreeHelper를 사용하고 DataGridCell을 가져 오는 것은 발표자에서 DataGrid 컨트롤에서 가져올 수 있습니다.

더 많은 정보와 코드를 여기에서 찾을 수 있습니다 :

http://techiethings.blogspot.ch/2010/05/get-wpf-datagrid-row-and-cell.html

0

당신은 내가 그것

+0

안녕 Steoates, 나는 질문을 편집했다. 문제는 DataGrid에 코드에서 언급 한대로 Property Cell이 없다는 것입니다. – Diego

관련 문제