我可以绑定到Silverlight中的祖先DataTemplate吗?

时间:2012-09-03 18:29:19

标签: silverlight xaml binding datatemplate

我无法解除我认为在Silverlight 5中应该有效的绑定:

<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>

这是一个简化的例子,但希望它非常易读。在excessence中,我试图将SubgraphTemplate的VertexTemplate绑定到包含控件的VertexTemplate(根GraphLayout控件)。不幸的是,在后面的代码中我可以看到VertexTemplate在子图控件中为空。

1 个答案:

答案 0 :(得分:0)

可能是你的代码可以工作(这很奇怪你绑定到没有x:Key的东西,我认为你应该使用{StaticResource SomethingWithName}))。

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