отслеживать изменения объекта в datagridview, используя структуру объекта - PullRequest
1 голос
/ 18 января 2010

Я использую DataGridView для отображения EntityObjects из .NET Entity Framework.

как я могу изменить форматирование строки DataGridView, если соответствующий объект EntityObject был изменен пользователем, например, отображение строки жирным шрифтом

привет

1 Ответ

1 голос
/ 18 января 2010

Вы можете получить состояние объекта, используя ObjectStateManager:

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

Вы можете обработать событие CellPainting DataGridView, чтобы изменить стиль строки в соответствии с сущностьюсостояние

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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...