2012-09-03 55 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

相關問題