Nö, muss ich nicht. Die Menüeintrage und die Anzahl sind Laufzeitabhängig. Kommt drauf an was ich selektiere.
Dynamischer deshalb, weil es davon abhängt was ich wann anklicke. Wenn ich das deklarativ mache, dann ist das solange statisch, bis ich das deklarierte anfasse. Okay, es auch auch ein klein wenig dynamisch, da ich in Abhängigkeit von Variablen im System Menüpunkte ein/ausblenden aktivieren/deaktivieren kann. Aber ich bin damit immernoch auf das, was ich mal deklariert habe eingegrenzt. Ich kann nicht dynamisch beliebiug viele Menüpunkte hinzufügen wenn ich das statisch deklariert habe.
Das ist für mich irrelevant.
Ich versuchs meine Requirements nochmal genauer zu formulieren:
Die Anwendung soll Displaywände, die aus mehreren Displays besteht steuern. Steuern im Sinne von Helligkeit, Farbabgleich, welcher Eingang an jeweiligen Display, ...
Die Anwendung kann viele Displaywände ansteuern. Und jede Displaywand hat 0..n Profile für Helligkeit+Kontrast+Farbe.
Je nachdem welche Displaywand ich in der Anwendung in einem View oder im Editor selektiere, soll in der Menüleiste "Konfiguration" im Untermenu "Profile" die einzelnen Profile der jeweils selektierten Displaywand als weiteres Untermenü von "Profile" auftauchen. Und dieses Untermenü hat dann Kommandos wie "löschen", "anwenden", "umbenennen", ...
[code]
Menüleiste
+-----------[Konfigurieren]
+-----------[Profile]
+--------[Profil 1]
| +------löschen
| +------anwenden
| +------umbenennen
| +------....
+--------[Profil ...]
| +------löschen
| +------anwenden
| +------umbenennen
| +------....
+--------[Profil n]
+------löschen
+------anwenden
+------umbenennen
+------....
[/code]
Je nachdem ob ich jetzt die eine, oder andere Wand selektiere, hab ich eine unterschiedliche Anzahl an Profilen im Menü sichtbar. ich wüsste nicht wie ich das deklarativ festlegen, und wie das dann noch dynamisch sein soll.
Deklarativ hab ich festgelegt dass es ein Menu "Profile" gibt. Aber dynamisch, per Code generiert, sind die Untermenüs "Profil x" (die natürlich beliebig heissen können).