2013-04-02 35 views
1

是否可以引用位於DataTemplateSelector中另一個程序集中的DataTemplate?來自另一個程序集的WPF DataTemplate

目前,我有這樣的事情:

public override DataTemplate SelectTemplate(object item, DependencyObject container) 
    { 
     var element = container as FrameworkElement; 

     if (element != null && item != null && item is BrowserBaseViewModel) 
     { 
      return element.FindResource("BrowserDataTemplate") as DataTemplate; 
     } 
     return null; 
    } 

但它僅與當前的裝配工作。

回答

4

當然,請在您的app.xaml中寫入ResourceDictionary「include」,以便可以在您的應用程序中找到該字典。現在

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/MyOtherAssembly;component/MyAssemblyXaml.xaml" /> 

您的數據模板會被發現,因爲資源查找將調查App.xaml中的資源,並找到你所引用的XAML。

+0

是的,感謝您的幫助;)太棒了! – Vlad

+0

有沒有可能以某種方式動態實現這一點?我面臨着類似的情況,但包含我的數據模板的程序集在編譯時未知,因爲它將在運行時作爲插件添加。 –

相關問題