/ / WPF / Prism die beste Möglichkeit zum Löschen eines ausgewählten Elements aus einer untergeordneten Ansicht über eine Symbolleistenschaltfläche in der Shell? - wpf, view, command, prism, viewmodel

WPF / Prism beste Möglichkeit, ein ausgewähltes Element aus einer untergeordneten Ansicht von einer Symbolleistenschaltfläche in der Shell zu löschen? - WPF, Ansicht, Befehl, Prisma, Ansichtsmodell

Ich verwende WPF / Prism und habe eine Shell mit Symbolleiste und einen Bereich mit einer Ansicht (Die Ansicht befindet sich in einem anderen Modul). Die Ansicht enthält eine Strukturansicht, die an eine Liste von Ansichtsmodellen gebunden ist.

Ich habe eine Symbolleistenschaltfläche in der Shell, mit der ich das ausgewählte Strukturansichtselement in der untergeordneten Region / Ansicht löschen möchte.

Was ist der beste Weg, dies zu tun?

Ich habe überlegt, einen Befehl zu verwenden, bin mir aber nicht sicherWenn es eine Möglichkeit gibt, den in der Shell vorhandenen Befehl für die Symbolleistenschaltfläche an das Ansichtsmodell in der untergeordneten Ansicht (das die Baumansicht enthält) zu binden. Ist das möglich / der beste Weg, dies zu tun?

Die Alternativen wie die Verwendung des Ereignisaggregators zum Veröffentlichen des ausgewählten Elements scheinen plausibel, oder eine Art von Service zum Veröffentlichen des ausgewählten Strukturansichtselements scheint ebenfalls möglich.

Vielen Dank.

Antworten:

0 für die Antwort № 1

Sie können einen statischen CompositeCommand in einem definierenstatische Klasse als Teil eines Infrastrukturprojekts / einer DLL. Setzen Sie die Befehlseigenschaft der Symbolleistenschaltfläche mit {x: Static} auf diesen Befehl, und definieren Sie im Ansichtsmodell der Ansicht mit der TreeView einen lokalen DelegateCommand, den Sie beim CompositeCommand registrieren.

Wenn die Schaltfläche in der Symbolleiste jedoch nur für diese bestimmte Ansicht aus dem Modul gilt, ist es sinnvoll, die Symbolleiste auch als Prismabereich zu definieren und die Schaltfläche als Ansicht aus dem Modul einzufügen.