我正在使用FindAncestor和AncestorLevel = 3来访问应该具有viewModel relay命令的顶级标记,但它不起作用。如果我做错了或者调试这种情况的方法有任何建议吗?
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding name}" Cursor="Hand"
Foreground="Blue" TextDecorations="Underline">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDown">
<cmd:EventToCommand Command="{Binding NameClickCommand, RelativeSource={RelativeSource FindAncestor, AncestorType=Grid, AncestorLevel=3}}"
MustToggleIsEnabled="True" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
答案 0 :(得分:3)
看起来您正在将Command绑定到Grid上名为NameClickCommand的属性。网格没有此属性,因此请尝试将其更改为
Command="{Binding Path=DataContext.NameClickCommand...
如果NameClickCommand位于Grid的DataContext中
答案 1 :(得分:1)
您正在寻找层次结构中的第3个Grid
- 这就是您想要的吗?
请注意,Grid
不包含DataGrid
。