2017-01-16 2 views
0

verschmolzen ich auf eine Plugin-Framework gerade arbeite, die Plugins akzeptieren soll, die meine öffentliche Schnittstelle implementieren und die eine GUI mit DevExpress.RibbonControl getan. Ich habe keine Probleme, die Plugins zu laden und die Zusammenlegung den Ribbon der Plugin-Framework mit dem Ribbon des Plugin. Wenn ich eine RibbonPage, RibbonPagrGroup oder ein Artikel in einem PageGroup und fügen Sie diese programmatisch zu meinem PluginRibbon nichts auf dem Bildschirm erscheint, aber wenn ich Debuggen kann ich sehen, dass die Elemente hinzugefügt wurden zu meinem Plugin RibbonControl. Es scheint, dass DevExpress nicht neu zeichnet, was nach der Zusammenführung zwischen dem Plugin RibbonControl und dem Framework RibbonControl hinzugefügt wird. Problem ist jetzt, dass mein Rahmen weiß nicht, wann es braucht, um UnmergeRibbon() und MergeRibbon() wieder so meine Frage ist: Gibt es eine Möglichkeit von meinem Plugin-Code der MergedRibbons zu „remerge zu zwingen() "?Programatically RibbonPage/Gruppe/Item zu einer Ribbon geben, die bereits

Ich arbeite übrigens mit DevExpress Version 14.2.11.

Antwort

1

Die Zusammenführung ist die einmalige Operation, daher müssen alle Elemente hinzugefügt werden, bevor zwei RibbonControls zusammengeführt werden. Nachdem der Vorgang abgeschlossen ist, besteht die einzige Möglichkeit, das übergeordnete RibbonControl zu aktualisieren, wenn Elemente dynamisch zu dem untergeordneten Element hinzugefügt wurden, RibbonControls manuell zu entfernen und sie erneut zusammenzuführen.

Es gibt öffentliche Methoden merge/unmerge RibbonControls, aber das ist nicht der richtige Weg zu gehen. Die korrekte Methode besteht darin, dem untergeordneten RibbonControl alle Elemente hinzuzufügen, bevor der zugehörige Container angezeigt wird.

Dies ist vielleicht nicht so einfach, wenn es darum geht, ein Plugin-Framework zu entwickeln, anstatt einfache WinForms-Anwendungen. Wenn es keine Möglichkeit gibt, Elemente im richtigen Moment hinzuzufügen, ist es wahrscheinlich einfacher, eine einfache benutzerdefinierte Merge/Unmerge-Funktionen zu entwickeln, die Elemente nach eigenen Regeln hinzufügen/entfernen.

+0

Ich weiß über die Standardmethode merge/unmerge, da Sie darauf hingewiesen haben, dass es problematisch ist, alle untergeordneten Steuerelemente zu dem Zeitpunkt zu kennen, wenn das Plugin RibbonControl mit dem Framework PluginControl zusammengeführt wird. Im Moment habe ich nur statische Plugins, aber es scheint keine andere Möglichkeit zu geben, als eine Art der Kommunikation zwischen Plugin und Framework in der Schnittstelle zu implementieren. Vielen Dank für Ihr Feedback. –