WPF Binding RelativeSource проблема - PullRequest
2 голосов
/ 26 января 2011

Я использую FindAncestor и AncestorLevel = 3, чтобы добраться до тега верхнего уровня, который должен иметь команду реле ViewModel, но он не работает. Любые предложения, если я делаю это неправильно или способ отладки этого сценария?

<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>

Ответы [ 2 ]

3 голосов
/ 26 января 2011

Похоже, вы связываете Command со свойством NameClickCommand в Grid.Сетка не имеет этого свойства, поэтому попробуйте изменить его на

Command="{Binding Path=DataContext.NameClickCommand...

, если NameClickCommand находится в DataContext Grid

1 голос
/ 26 января 2011

Вы ищете третью Grid иерархию - это то, что вы хотите?

Обратите внимание, что Grid не включает DataGrid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...