2011-02-15 3 views
4

WPF의 DataGrid가 있습니다. DataGrid는 DataTable의 데이터에 바인딩됩니다. DataGrid에 ItemsSource = "{Binding}"이 있습니다. 설정된 DataGridTextColumn 항목이 없습니다. DataTable 열/행은 데이터베이스 테이블을 통해 동적으로 결정됩니다. 데이터베이스 열 이름 아래 예에서 DataTable을 사용하는 DataGrid의 WPF 개별 셀 색

는리스트에 투입하고 다음 첫 번째 열에 이름과 정수 값의 시리즈가되도록 DataTable의 셋업이다

DataTable theDataTable= new DataTable(); 
theDataTable.Columns.Add("Name", typeof(string)); 
for(int i = 0; i < columnNameList.Count ; i++) 
    theDataTable.Columns.Add(columnNameList[i], typeof(int)); 

다음 데이터 격자는이 DataTable에 연결된 (바인딩 된)

theDataGrid.DataContext = theDataTable; 

다음으로 행이 DataTable에 설정됩니다. 다시, 행 수는 데이터베이스의 사용자에 의해 결정됩니다. 사용자 이름은 데이터베이스 호출 후에 목록에 추가됩니다. 행 값의 기본값은 0입니다.

DataGrid 설정에 이어 사용자 정보 업데이트가 포함 된 콜백을 제공하는 API에 연결합니다. 업데이트시, DataGrid를 업데이트하는 기본 DataTable을 업데이트해야하는 행과 열을 결정합니다. 이것은 모두 정상적으로 작동합니다.

//inside some API callback 
theDataTable.Rows[rowNumber][columnNumber] = someDataSentInViaAPI; 

마지막으로 질문 : 해당 셀의 값을 기반으로 DataGrid의 특정 셀의 색을 어떻게 업데이트합니까? 데이터를 수신하는 API의 콜백시 셀이 지속적으로 업데이트됩니다. 업데이트가 들어 오면 셀의 색상을 업데이트하고 싶습니다.

디자인에 결혼하지 않았습니다. 이미이 코드를 기반으로이 모델을 적합하게 만들고 싶지 않습니다. 나는 대부분의 아이디어를 가지고 있지만 열 이름을 하드 코딩하지 않기를 바란다. 또한 셀의 색상을 확인한 다음 필요에 따라 다시 칠하는 방법 (속도/CPU 이유)을 선호합니다. 모든 도움을 위해 미리 감사드립니다.

+0

좋은 해결책이없는 것 같습니다. WPF에서 winforms, 경계선 불가능하고 끔찍한 못생긴 너무 쉽게 – rolls

답변

관련 문제