ウィンドウにリスト(以下を参照)が含まれています。ウィンドウのDataContext
には、Items
とAllowItemCommand
の2つのプロパティがあります。
ウィンドウのHyperlink
に対して解決する必要があるCommand
のDataContext
プロパティのバインディングを取得するにはどうすればよいですか?
<ListView ItemsSource="{Binding Items}">
<ListView.View>
<GridView>
<GridViewColumn Header="Action">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBlock>
<!-- this binding is not working -->
<Hyperlink Command="{Binding AllowItemCommand}"
CommandParameter="{Binding .}">
<TextBlock Text="Allow" />
</Hyperlink>
</TextBlock>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
次のようなものを試すことができます:
...Binding="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Window}}, Path=DataContext.AllowItemCommand}" ...
これは、Silverlight 5でも機能します(おそらく以前のバージョンでも動作しますが、テストしていません)。私はこのような相対的なソースを使用し、うまく機能しました。
RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=telerik:RadGridView}"