绑定到Silverlight中父元素的属性

绑定到Silverlight中父元素的属性,silverlight,data-binding,user-controls,Silverlight,Data Binding,User Controls,我试图将UserControl中元素的属性绑定到Silverlight中UserControl本身的属性集。我相信它应该很简单,但我还没有设法让它与RelativeSource或ElementName绑定一起工作。在本例中,我希望矩形为绿色(或者UserControl的Background属性设置为什么) 有人知道正确的绑定语法吗?试试这个: <UserControl ... Background="Green" x:Name="root"> <Grid x:N

我试图将UserControl中元素的属性绑定到Silverlight中UserControl本身的属性集。我相信它应该很简单,但我还没有设法让它与RelativeSource或ElementName绑定一起工作。在本例中,我希望矩形为绿色(或者UserControl的Background属性设置为什么)


有人知道正确的绑定语法吗?

试试这个:

<UserControl ... Background="Green" x:Name="root">    
  <Grid x:Name="LayoutRoot" Background="White">        
    <Rectangle x:Name="indicatorRectangle" 
         Fill="{Binding Background, ElementName=root}" Width="10" Height="10"  />
  </Grid>
</UserControl>


直到我给了矩形一个宽度和高度,它才对我起作用

有趣的是,我在原始问题中发布的XAML在VS2010中工作正常,因此我假设这是最新的Silverlight中已修复的问题

请记住,如果使用用户控件并设置名称(在Silverlight 4.0、Visual Studio 10中),此代码将中断使用
x:Name=

这将获取MyUserControl类型的第一个祖先并绑定到它

xmlns:controls="namespace of your control" ...

<Rectangle x:Name="indicatorRectangle" Fill="{Binding Path=Background 
RelativeSource={RelativeSource AncestorLevel=1,AncestorType=controls:MyUserControl}"/>
xmlns:controls=“控件的名称空间”。。。
xmlns:controls="namespace of your control" ...

<Rectangle x:Name="indicatorRectangle" Fill="{Binding Path=Background 
RelativeSource={RelativeSource AncestorLevel=1,AncestorType=controls:MyUserControl}"/>