WPF数据绑定:如何访问“父”数据上下文?我有一个窗口中包含的列表(见下文)。窗口DataContext有两个属性,Items和AllowItemCommand。如何获取针对窗口的属性需要解析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>
3 回答
BIG阳
TA贡献1859条经验 获得超6个赞
你可以尝试这样的事情:
...Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.AllowItemCommand}" ...
慕村225694
TA贡献1880条经验 获得超4个赞
这也有效:
<Hyperlink Command="{Binding RelativeSource={RelativeSource AncestorType=ItemsControl}, Path=DataContext.AllowItemCommand}" />
ListView
将继承其DataContext
从Window
,所以它的使用在这一点上,太。
并且,因为ListView
,就像类似的控件(例如Gridview
,ListBox
等等)是其子类ItemsControl
,Binding
对于这样的控件将完美地工作。
临摹微笑
TA贡献1982条经验 获得超2个赞
这也适用于Silverlight 5(也许更早,但我还没有测试过)。我使用了这样的相对来源,它工作得很好。
RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=telerik:RadGridView}"
添加回答
举报
0/150
提交
取消