2012-11-06 5 views
7

Ich kenne dort viele Themen im Zusammenhang mit dieser Frage, aber ich konnte keine Lösung finden, die perfekt für mein Problem passt ... vielleicht gibt es keine?DataTemplate in einem separaten ResourceDictionary

Im Moment habe ich eine UserControl, die eine Navigation enthält, die es dem Benutzer ermöglicht, zwischen verschiedenen Bildschirmen zu wechseln. Diese Bildschirme sind in dem Resources Teil meiner UserControl als DataTemplate definiert.

So etwas:

<DataTemplate TargetType={x:Type vm:ViewModel1}> 
    ... 
</DataTemplate> 
<DataTemplate TargetType={x:Type vm:ViewModel2}> 
    ... 
</DataTemplate> 
<DataTemplate TargetType={x:Type vm:ViewModel3}> 
    ... 
</DataTemplate> 

Ok, und was ich tun möchte, ist diese Datatemplates in einer separaten XAML-Datei zu platzieren und verknüpfen diese Datei auf die Ressourcen Teil des Usercontrol. Muss ich dieses neue XAML-Ressourcenwörterbuch in meiner Anwendung wirklich verfügbar machen (indem ich es zu den App.xaml-Ressourcen hinzufüge) oder gibt es einen anderen/besseren Weg?

Antwort

13

Nein, Sie müssen es nicht global machen. Deklarieren Sie das Ressourcenwörterbuch einfach in Ihrem Bereich für Benutzersteuerungsressourcen genau wie in app.xaml.

<Control.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Dictionary1.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Control.Resources> 

können Sie zeigen "..\Folder\Folder\Dictionary.xaml" mit relativen Dateipfad Datei, wenn Sie benötigen.