У нас есть пользовательский элемент управления с контекстным меню на одном из его дочерних элементов управления.
Команда привязана к RelayCommand в ViewModel.
Однако команда должна воздействовать на другой дочерний элемент управления в представлении.
Каков наилучший способ сделать это?Я попытался передать требуемый дочерний элемент управления в качестве параметра, но мне кажется, что синтаксис неправильный:
<Controls:ContextMenu >
<Controls:MenuItem Header="Center" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click" >
<GalaSoft_MvvmLight_Command:EventToCommand
Command="{Binding RecenterCommand}"
CommandParameter="{Binding ElementName=scrollViewer}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Controls:MenuItem>
</Controls:ContextMenu>
Команда:
RecenterCommand = new RelayCommand<ScrollViewer>(Recenter);
private void Recenter(ScrollViewer obj)
{
}
Когда я использую контекстное меню, Recenter (), но параметр obj имеет значение null.
Какой правильный синтаксис для атрибута ElementName в привязке CommandParameter?
ОБНОВЛЕНИЕ: я пытался изменить CommandParameter на:
CommandParameter="{Binding ElementName=LayoutRoot, Path=scrollViewer}"
... но все равно не работает.
Спасибо за любые идеи ....