简单的语法问题,但我无处可去:
(Psuedo代码)
MainWindow.xaml:
<grid>
<control:MyUserControl DataContext="{StaticResource MyDataSource}" />
</grid>
MyUserControl.xaml
<grid>
<stackpanel DataContext="{StaticResource MyOtherDataSource}" IsEnabled="{Binding Path=CanUseMe, Source={StaticResource MyDataSource}" />
</grid>
堆栈面板中的问题是{StaticResource MyDataSource}
,因为用户控件没有此资源。
当我已经为stackpanel设置了DataContext时,如何将源绑定设置为传递给usercontrol的'全局'数据源?
谢谢!
答案 0 :(得分:1)
UserControl
的DataContext将是MyDataSource,因此您可以在Binding中使用RelativeSource
<grid>
<stackpanel DataContext="{StaticResource MyOtherDataSource}"
IsEnabled="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}},
Path=DataContext.CanUseMe}"/>
</grid>