2011-01-22 14 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}です。ユーザcontr olにはこのリソースがありません。

私はすでにstackpanelのDataContextを設定したときに、ソースコントロールをusercontrolに渡される 'グローバル'データソースに設定しますか?

ありがとうございます!

答えて

1

あなたはこの

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

グレート様結合でRelativeSourceを使用できるようにUserControlさんのDataContextは、MyDatasourceのだろうが、あなたに感謝します! – DaveO

関連する問題