2012-11-06 24 views
7

Wiem, że istnieje wiele tematów związanych z tym pytaniem, ale nie mogłem znaleźć rozwiązania, które idealnie pasowałoby do mojego problemu ... może nie ma żadnego?DataTemplate w oddzielnym ResourceDictionary

W tej chwili mam UserControl, który posiada nawigację, która pozwala użytkownikowi przełączać się między różnymi ekranami. Ekrany te są zdefiniowane w części jako UserControl jako UserControl jako UserControl jako UserControl jako .

Coś takiego:

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

Ok i co chcę zrobić, to umieścić te DataTemplates w oddzielnym pliku XAML i odwołują się do tego pliku zasobów ramach usercontrol za. Czy naprawdę muszę udostępnić ten nowy słownik zasobów XAML na całym świecie w mojej aplikacji (dodając go do zasobów App.xaml) lub czy istnieje inny/lepszy sposób?

Odpowiedz

13

Nie, nie musisz robić tego globalnie. Po prostu zadeklaruj słownik zasobów w sekcji zasobów sterowania użytkownika w taki sam sposób, jak w app.xaml.

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

Możesz wskazać plik przy użyciu względnej ścieżki pliku "..\Folder\Folder\Dictionary.xaml", jeśli potrzebujesz.