2012-09-03 129 views
0

我无法脱下的结合,我认为应该在Silverlight 5是有效的:我可以绑定到Silverlight中的祖先DataTemplate吗?

<Controls:GraphLayout> 
    <Controls:GraphLayout.VertexTemplate> 
    <DataTemplate> 
     <TextBox ... /> 
    </DataTemplate> 
    </Controls:GraphLayout.VertexTemplate> 
    <Controls:GraphLayout.SubgraphTemplate> 
    <DataTemplate> 
     <Controls:GraphLayout VertexTemplate="{Binding VertexTemplate, RelativeSource={RelativeSource AncestorType=Controls:GraphLayout}}"/> 
    </DataTemplate> 
    </Controls:GraphLayout.SubgraphTemplate> 
</Controls:GraphLayout> 

这是一个简单的例子,但希望它是相当可读。在另一方面,我试图将SubgraphTemplate的VertexTemplate绑定到包含控件的VertexTemplate(根GraphLayout控件)。不幸的是,在后面的代码中,我可以看到VertexTemplate在子图控件中为null。

回答

0

可能是你的代码可以工作(这是奇怪,你必然的东西,有一个x:Key,我认为你应该使用{StaticResource SomethingWithName}))。

但实际上你要找的是DataTemplateSelector。它非常易于使用,并且实际上支持您描述的逻辑。

+0

不幸的是,我不认为DataTemplateSelector解决了这个问题,因为我没有试图绑定到父级模板,也没有选择基于某个模板的模板。 – Jeff

相关问题