私はFindAncestorとAncestorLevel = 3を使用して、viewModelリレーコマンドが必要なトップレベルのタグに到達していますが、動作しません。私がそれを間違ってやっている場合や、このシナリオをデバッグする方法を教えてください。WPFバインディングRelativeSourceの問題
<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>
である場合
にそれを変更しようとしません。ボール? – DHN
ガラス球! :D – WhoIsNinja
すぐにあなたのxamlを見てちょうど愚痴。これは、コマンドを 'Grid'の' NameClickCommand'というプロパティにバインドしているようです。 'Grid'はこのプロパティを持っていませんので、NameClickCommandがグリッドのDataContextにあれば、' Command = "{Binding Path = DataContext.NameClickCommand ...'に変更してみてください。 –