2009-03-06 16 views
0

Ich habe eine WinForm mit einem DataGridView, die Mitglieder eines Teams enthält. Diese Mitglieder haben jeweils eine zugewiesene Rolle und andere Eigenschaften, die in einer Spalte im Raster aufgelistet sind, aber für den Zweck dessen, was ich erreichen möchte, sind sie irrelevant. Ich habe auch ein bindingNavigator mit Schaltflächen hinzufügen, bearbeiten und löschen hinzugefügt.Enable/Disable BindingNavigatorItems basierend auf ausgewählter Zeile

Was ich implementieren möchte ist, dass die Schaltfläche Bearbeiten/Löschen deaktiviert werden soll, wenn ich eine Zeile mit einem Teammitglied in einer bestimmten Rolle (Key Account Manager und einige andere) auswähle und aktiviert werde, wenn das ausgewählte Mitglied keine hat eine solche Rolle.

Also, wie kann ich das einrichten? Gibt es ein Ereignis für die aktuell ausgewählte Zeile oder eine neue Zeile, der ich meinen Code hinzufügen kann?

Ich denke, etwas entlang er Linien dieser Pseudo-Code:

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

Antwort

0

ich das endlich herausgefunden und es ist perfekt funktioniert. Ich musste dem SelectionChanged-Ereignis in meinem DataGridView Code hinzufügen:

var member = teamRoleBindingSource.Current as TeamRole; 

if (member != null && member.RoleCode == "KEY_ACCOUNT_MANAGER") 
{ 
    bindingNavigatorDeleteItem.Enabled = false; 
    bindingNavigatorChangeItem.Enabled = false; 
} 
Verwandte Themen