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

StackOverflow https://stackoverflow.com/questions/619028

Вопрос

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

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

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

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

if (SelectedRow.DataboundObject.Role == "KEY_ACCOUNT_MANAGER") 
{
    bindingNavigatorChangeItem.Enabled() = false;
    bindingNavigatordeleteItem.Enabled() = false;
}
Это было полезно?

Решение

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

var member = teamRoleBindingSource.Current as TeamRole;

if (member != null && member.RoleCode == "KEY_ACCOUNT_MANAGER")
{
    bindingNavigatorDeleteItem.Enabled = false;
    bindingNavigatorChangeItem.Enabled = false;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top