2010-06-25 4 views
5

In un'applicazione WPF, si può mettere le risorse statiche globali in app.xaml .. comeRisorse statiche globali in una libreria di classi WPF?

<Application.Resources> 
     <!--Global View Model Locator--> 
     <vm:ViewModelLocator x:Key="Locator" 
          d:IsDataSource="True" /> 
    </Application.Resources> 

Questo è stato da MVVM Luce;). Ora, se il tuo progetto è una libreria di classi wpf, qual è il modo corretto per inizializzare tali risorse statiche globali?

risposta

3

È possibile creare un ResourceDictionary con le risorse e unire i dizionari utilizzando il codice come di seguito.

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:vm="clr-namespace:WPFProject.ViewModel" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
<vm:ViewModelLocator x:Key="Locator" 
         d:IsDataSource="True" /> 

Codice:

Application.Current.Resources.MergedDictionaries.Add(Application.LoadComponent(
      new Uri("/WPFProject;Component/Resources/ResourceDictionary1.xaml", UriKind.Relative)) as ResourceDictionary); 
+1

È possibile creare i MergedDicionaries in XAML, nel file App.xaml, che è la pratica più comune (invece di crearli in codice dietro). – Hannish