2014-10-21 4 views
1

DataTemplate внутри Resource Dictionary потребностей, относящихся к Styles.xaml, поэтому у меня есть следующие, как получить доступ к другим ресурсам внутри ResourceDictionary

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:src="clr-namespace:WPFApp"> 
    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="resources/Styles.xaml" /> 
    </ResourceDictionary.MergedDictionaries> 

    <DataTemplate DataType="{x:Type src:MyFileInfo}"> 
     <Grid> 
      grid stuff 
     </Grid> 

     <TextBlock> stuff </TextBlock> 
    </DataTemplate> 


</ResourceDictionary> 

но есть ошибка в DataTemplate говоря, что The proprety "Visual Tree" can only be set once. Что это значит? Хорошо ли положить DataTemplate внутри ResourceDictionary? Как получить доступ к другим ресурсам внутри ResourceDictionary?

+1

ли вы на самом деле ' "х: Тип SRC: MyFileInfo"' или ' "{х: Тип ЦСИ: MyFileInfo}"'? Также обратитесь к [this] (http://stackoverflow.com/questions/22965447/the-property-visualtree-is-set-more-than-once) вопросу. Проблема может быть в шаблоне _data stuff_ – dkozl

+0

oops, fixed. Я думаю ты прав; ошибка исчезла после удаления 'data template stuff' ... – totoro

+0

Можете ли вы показать свою« DataTemplate »? Ошибка предполагает, что он содержит более одного корневого элемента – dkozl

ответ

2

В DataTemplate должен быть только один ребенок. Используйте это:

<DataTemplate DataType="{x:Type src:MyFileInfo}"> 
    <Grid> 
     grid stuff 
     <TextBlock> stuff </TextBlock> 
    </Grid>   
</DataTemplate>