子コントロールの Resource セクション内から Window.Resources にアクセスする方法がわかりません。子コントロールで定義されている DataTemplate があり、その DataTemplate をビュー モデル (Window.Resources で定義) の ICommand にバインドしたい
編集:RadPaneGroup
コードをメイン ウィンドウ XAML に追加しました。ここで、オブジェクトをインスタンス化しProjectsViewModel
ます。ProjectsView
に含まれるコントロールRadDocumentPane
は、以下にリストした子コントロールです。
メインウィンドウ
<Window.Resources>
<viewModels:ProjectsViewModel x:Key="ProjectsViewModel" />
</Window.Resources>
<telerik:RadDocking HasDocumentHost="False" >
<telerik:RadSplitContainer>
<telerik:RadPaneGroup DataContext="{StaticResource ProjectsViewModel}">
<telerik:RadDocumentPane Header="Projects">
<views:ProjectsView/>
</telerik:RadDocumentPane>
</telerik:RadPaneGroup>
</telerik:RadSplitContainer>
...
チャイルド コントロール
<Control.Resources>
<!--Data template for the Task object-->
<DataTemplate DataType="{x:Type models:Task}">
<StackPanel>
<TextBlock Text="{Binding DisplayName}" Foreground="Red"
FontSize="16" FontFamily="Verdana" />
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu >
<telerik:RadMenuItem Header="New Project"
Command="{Binding NewProjectCommand}"/>
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
</StackPanel>
</DataTemplate>
上記の XAML のバインドは、Task オブジェクトにバインドしようとしています。ただし、私の ICommand は ViewModel (ProjectsViewModel) にあります。バインディングを変更しようとしましたCommand="{Binding NewProjectCommand, Source={StaticResource ProjectsViewModel}}
が、例外がスローされます。
私は何を間違っていますか?
ありがとう、