2010-01-18 3 views
1

DataGridView를 사용하여 .NET Entity Framework에서 EntityObjects를 표시하고 있습니다.엔티티 프레임 워크를 사용하여 DataGridview의 개체 변경 내용을 추적합니다.

해당 EntityObject가 사용자에 의해 변경된 경우 DataGridView 행의 서식을 어떻게 바꿀 수 있습니까? 따라서 행의 스타일을 변경

public EntityState GetState(object o) 
{ 
    var entry = context.ObjectStateManager.GetObjectStateEntry(o); 
    return entry.State; 
} 

당신은 DataGridViewCellPainting 이벤트를 처리 할 수 ​​있습니다 굵은

인사의 행을 표시하는

답변

1

당신은이 ObjectStateManager 사용하여 개체의 상태를 검색 할 수 있습니다 엔티티 상태로

private grid_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) 
{ 
    object entity = grid.Rows[e.RowIndex].DataBoundItem; 
    var state = GetState(o); 
    switch(state) 
    { 
     case Detached : 
      e.CellStyle.Font = italicFont; 
      break; 
     case Unchanged : 
      e.CellStyle.Font = normalFont; 
      break; 
     case Added : 
      e.CellStyle.Font = boldFont; 
      break; 
     case Deleted : 
      e.CellStyle.ForeColor = Color.Red; 
      break; 
     case Modified : 
      e.CellStyle.Font = boldFont; 
      break; 
    } 
} 
+0

감사합니다. – pragmascript

관련 문제