2010-02-11 6 views
5

Ich benutze Prism schon seit einiger Zeit und genieße, wie viel einfacher es ist, meine Module zu entkoppeln.Verwendung von DataTemplates in Prism

Dies funktioniert besonders gut für Ansichten und Ansichtsmodelle, da Sie die Ansichtsmodelle über Schnittstellen und die Ansichten über den Regionsmanager injizieren können.

Leider funktioniert das nur, wenn meine Ansichten voll Benutzersteuerelemente sind, es sei denn, ich vermisse etwas hier (und ich hoffe aufrichtig, dass ich bin).

Viele Male, aber ich werde ein ViewModel und eine passende DataTemplate erstellen. Diese können dann von anderen Assemblies zum Erstellen einer Ansicht verwendet werden.

Mein Problem ist, dass ich keine Möglichkeit, unter Hinweis auf diese Datatemplates sehen, ohne dass die enthaltende Montag Referenzierung, so in meiner XAML-Datei, das ich etwas schreiben wie:

<ResourceDictionary Source="pack://application:,,/......> 

Natürlich ist dies nicht wirklich entkoppelt, obwohl Ich versuche sicherzustellen, dass ich nirgendwo anders in meinem Code auf die Assembly verweise. Eine andere Lösung, an die ich gedacht habe, war, die Datatemplates in das Infrastructure - Projekt zu bringen, aber das gefällt mir auch nicht besonders, da ich alles, was zu einem Modul gehört, darin enthalten soll (außer den Interfaces von ...) Kurs).

Hat also jemand einen guten Workaround, oder habe ich etwas Prism-Feature vermisst?

Antwort

2

Ich würde vorschlagen, einen Dienst zu erstellen, der das Hinzufügen von Ressourcenwörterbüchern in die Application.Resources.MergedDictionaries-Auflistung kapselt.

Ich würde erwarten, dass Sie diesen Dienst während des Ladens des Moduls "auflösen" und ihn verwenden würden, um die modullokalen Ressourcenwörterbücher zu "registrieren".

+0

Das sollte funktionieren, der einzige Nachteil dabei ist, dass ich keine Hilfe in meiner XAML-Datei bekomme, wenn ich die Datatemplates nicht explizit dorthin importiere. Z.B. Resharper warnt "Ressource nicht gefunden" und ich verliere das Feedback, das mich wissen lässt, ob ich Dinge geschrieben habe richtig usw. ... Wenn ich nur auf Datenvorlagen verweisen könnte, als wären sie Schnittstellen ... –

Verwandte Themen