2010-06-25 24 views
5

, sen MVVM fenerine buyduWPF sınıf kitaplığındaki global statik kaynaklar?); WPF uygulamasında

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

gibi .. app.xaml global statik kaynakları koyabilirsiniz. Şimdi, projeniz bir wpf sınıfı kitaplığıysa, bu tür küresel statik kaynakları başlatmak için uygun bir yol nedir?

cevap

3

Kaynaklarınızla bir ResourceDictionary öğesi oluşturabilir ve aşağıdaki kodları kullanarak sözlükleri aşağıdaki gibi birleştirebilirsiniz.

<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" /> 

Kodu:

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

Sen (yerine kodda oluşturulmasının) en yaygın uygulamadır App.xaml dosyasında, XAML senin MergedDicionaries oluşturabilirsiniz. – Hannish