Hallo,
das von mir vorgesehene Menü würde die Möglichkeit bieten, bei der Erzeugung bereits eine Collection aller möglichen Menü- und Untermenüeinträge zu berücksichtigen und dazu noch das dynamische Hinzufügen und Löschen von Einträgen zu unterstützen.
Die Klasse die einen Menüeintrag representieren würde, würde statt der klassischen Methode, ein Event anzubieten, einen delegate (Func<> oder Action<>) für die auszuführende Aktion erfordern, der bei der Instanziierung der Klasse definiert werden muß.
Meiner Meinung nach macht das den das Menü verwendenden Code übersichtlicher und lesbarer.
Dazu kann man für jeden Menüeintrag ein Predicate definieren, welcher bestimmt, ob der Menüpunkt gerade ausführbar oder deaktiviert sein soll.
Ein entsprechender Refresh kann dann von außen auf dem Menü-Control aufgerufen werden.
Je nach Anforderungen können sicherlich noch weitere Features implementiert werden.
Bei Fragen oder Wünschen, einfach kontaktieren.