2011-01-22 38 views
1

語法簡單的問題真的,但我還是一無所獲:繼承設置綁定源的用戶控件元素

(代碼的僞)

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},因爲用戶控制ol沒有這個資源。

當我已經爲stackpanel設置了DataContext時,如何將源綁定設置爲傳遞到usercontrol的'global'數據源?

謝謝!

回答

1

UserControl的DataContext的將是MyDataSource,這樣你就可以在這樣

<grid> 
    <stackpanel DataContext="{StaticResource MyOtherDataSource}" 
       IsEnabled="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, 
            Path=DataContext.CanUseMe}"/> 
</grid> 
+0

大綁定使用RelativeSource,謝謝! – DaveO 2011-01-22 00:28:35