2017-08-03 107 views
0

我有一個數據模板選擇器,我用它來選擇兩個不同的模板。問題是,這些模板包括網格,外部零件等。我所做的就是我有我的模板選擇在我的UserControl.Resources我的資源控制:WPF數據模板選擇器

<l:UIDataTemplateSelector x:Key="UISelector" 
      ClassicDataTemplate="{StaticResource ClassicDataTemplate}" 
      ModernDataTemplate="{StaticResource ModernDataTemplate}" /> 

然後這個之外,我有我的內容控制,我的模板是控件模板:

<ContentControl ContentTemplateSelector="{StaticResource UISelector}"></ContentControl> 

當我運行我的代碼,這使得它崩潰,但如果我使用:

<ContentControl Template="{StaticResource ClassicDataTemplate}"></ContentControl> 

要使用一個模板或OT她,它工作得很好。有沒有簡單的方法讓它使用模板選擇器來顯示它?

回答

0

A ContentControl具有類型ControlTemplateTemplate。它也接受類型DataTemplateContentTemplateContentTemplateSelector,預計選擇DataTemplate。在你的情況下,因爲Template="{StaticResource ClassicDataTemplate}"正在工作,我懷疑你創建了ControlTemplate而不是DataTemplate。您需要工作ContentTemplate="{StaticResource ClassicDataTemplate}"才能轉移到選擇器。