none
Plugin und Lose Kommunikation RRS feed

  • Frage

  • Hallo zusammen,

    ich brauche mal einen Denkanstoß. In meiner Anwendung arbeite ich viel mit Plugins. Die Kommunikation (um höchst flexibel zu sein) läuft über den MVVM Light Messenger. Ich habe beispielsweise eine Klasse in der beidseitigen genutzten Schnittstelle, welche mittels des Messengers gesendet wird (string Befehl, object Rückgabe). Mein Problem ist nun, dass z.B. in einer View, welche das Plugin fasst, eine ObservableCollection<XY> verwendet wird und ich möchte nun mit dem Plugin darauf zugreifen. Ein Standardbefehl der Schnittstelle ist "GETPROPERTY|XY", so wird nach der öffentlichen Property gesucht; in diesem Fall der ObservableCollection. Diese wird dann an das Plugin übertragen. Hier arbeite ich dann mit dynamic weiter, um die Liste oder deren Daten auszulesen.

    Klappt wunderbar! Möchte ich aber nun mittels Plugin etwas in die Liste hinzufügen, somit stoße ich auf Probleme, denn das Plugin kennt weder die Klasse, welche die ObservableCollection nutzt, noch die einzelnen Modelle.

    Hat jemand hier eine Lösung? Alle geteilten Modelle und Klassen auslagern in das Interface?

    Ergänzung: Ich arbeite mit MEF.

    Ich danke euch und wünsche einen schönen Sonntag!

    MfG Florian


    FLOGERSOFT.de - Top Apps, wie z.B. 'Die Taschenlampe' oder ganz neu dabei: 'LiveClock' die Echtzeituhr für ihre Windows Phone Live-Kachel - mit Wettervorhersage!


    Sonntag, 24. Februar 2019 08:55

Antworten

  • Hallo Florian,

    Du kannst versuchen, die AllPlugins-Eigenschaft im Viewmodel zu verwenden. Es wird als eine ObservableCollection-Klasse von Lazy Items deklariert, die beim Dereferenzieren der "Value"-Eigenschaft jeder Lazy-Instanz (von IPlugin) erstellt werden. In diesem Thread findest Du weitere Informationen:
    An Extensible WPF client layout with RibbonTab submenus using MEF

    Gruß,

    Ivan Dragov


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Montag, 25. Februar 2019 08:24
    Administrator

Alle Antworten

  • Hallo Florian,

    Du kannst versuchen, die AllPlugins-Eigenschaft im Viewmodel zu verwenden. Es wird als eine ObservableCollection-Klasse von Lazy Items deklariert, die beim Dereferenzieren der "Value"-Eigenschaft jeder Lazy-Instanz (von IPlugin) erstellt werden. In diesem Thread findest Du weitere Informationen:
    An Extensible WPF client layout with RibbonTab submenus using MEF

    Gruß,

    Ivan Dragov


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Montag, 25. Februar 2019 08:24
    Administrator
  • Hallo!

    So hab ichs gemacht. Danke!


    FLOGERSOFT.de - Top Apps, wie z.B. 'Die Taschenlampe' oder ganz neu dabei: 'LiveClock' die Echtzeituhr für ihre Windows Phone Live-Kachel - mit Wettervorhersage!

    Mittwoch, 6. März 2019 18:38