Включить/отключить BindingNavigatorItems на основе выбранной строки

У меня есть winForm с dataGridView, содержащим членов команды. У каждого из этих участников есть назначенная роль и другие свойства, которые перечислены в столбце сетки, но для того, чего я хочу достичь, они не имеют значения. Я также добавил BindingNavigator с кнопками добавления, редактирования и удаления.

Что я хотел бы реализовать, так это то, что кнопка редактирования/удаления должна быть отключена, когда я выбираю строку, содержащую члена команды в определенной роли (менеджер по работе с ключевыми клиентами и некоторые другие), и должна быть включена, когда выбранный член не имеет такой роли.

Итак, как я могу настроить это? Есть ли событие для текущей выбранной строки или выбора новой строки, в которую я могу добавить свой код?

Я думаю что-то вроде этого псевдокода:

if (SelectedRow.DataboundObject.Role == "KEY_ACCOUNT_MANAGER") 
{
    bindingNavigatorChangeItem.Enabled() = false;
    bindingNavigatordeleteItem.Enabled() = false;
}

person Sakkle    schedule 06.03.2009    source источник


Ответы (1)


Я, наконец, понял это, и это работает отлично. Что мне нужно было сделать, так это добавить код к событию SelectionChanged в моем DataGridView:

var member = teamRoleBindingSource.Current as TeamRole;

if (member != null && member.RoleCode == "KEY_ACCOUNT_MANAGER")
{
    bindingNavigatorDeleteItem.Enabled = false;
    bindingNavigatorChangeItem.Enabled = false;
}
person Sakkle    schedule 09.03.2009