Ich verwende datatemplate, um meine Ansichten mithilfe der PRISM 4-Erkennung zu laden. Ich muss das view/viewmodel mehrere Male erstellen, anstatt vorhandene Instanzen wiederzuverwenden, sodass ich x: Shared = false in der Ressource festlege, aber es hat nur Auswirkungen auf das Viewmodel. Ich kann bestätigen, dass das Ansichtsmodell nicht wiederverwendet wird, aber die Ansicht ist. Der View-Konstruktor wird nur beim ersten Aufruf aufgerufen. Ich habe ähnliche Beiträge hier gelesen, aber ihre Lösungen haben nicht für mich funktioniert. Ich möchte wissen, ob ich etwas wie die Ressource loader/locator erweitern kann und sicherstellen, dass es das Shared-Flag respektiert.DataTemplate x: Shared = false hat keinen Einfluss auf die Ansicht
Hier ist, wie meine Vorlage definiert ist:
<DataTemplate DataType="{x:Type CVM:MyViewModel}" x:Shared="False">
<V:MyView />
</DataTemplate>
Jede Umgehungslösung, ohne das Design ändern zu müssen? – DotnetEng
Weiß nicht, habe kein Prisma benutzt und kann mir nichts elegantes vorstellen. –
In Prism steuern Sie, ob Sie Singleton oder nicht über das 'PartCreationPolicy' Attribut wollen. 'Shared' = Singleton,' NonShared' = eine neue Instanz. Hast du deine Ansicht mit '[PartCreationPolicy (CreationPolicy.NonShared)]' dekoriert? –