WPF: ligação de MenuItem.CommandParameter definida como nula
Eu tenho o seguinte ContextMenu definido para minha grade de dados:
<igDP:XamDataGrid.ContextMenu>
<ContextMenu ItemsSource="{Binding CommandViewModels}" >
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Command" Value="{Binding Command}" />
<Setter Property="CommandParameter" Value="{Binding CommandParameter}" />
<Setter Property="Header" Value="{Binding Name}" />
<Setter Property="Icon" Value="{Binding Icon}" />
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
</igDP:XamDataGrid.ContextMenu>
Uma classe CommandViewModel é definida da seguinte maneira:
public class CommandViewModel : ICommandViewModel
{
public CommandViewModel(string name, Image icon, ICommand command, object commandParameter = null, int index = 0)
{
Name = name;
Icon = icon;
Command = command;
CommandParameter = commandParameter;
Index = index;
}
public string Name { get; set; }
public Image Icon { get; set; }
public ICommand Command { get; set; }
public object CommandParameter { get; set; }
public int Index { get; set; }
}
Quando clico com o botão direito do mouse em uma linha na grade, cada MenuItem do ContextMenu é corretamente estilizado. O ícone, rótulo e comando do MenuItem é o esperado. No entanto, o parâmetro de comando, CommandViewModel.CommandParameter, que deve ser passado como argumento para o RelayCommand vinculado a MenuItem.Command é nulo.
Estou bastante certo de que o parâmetro de comando disponível para a ligação não é nulo. Este é o aplicativo WPF em execução no .NET 4.0.
Alguém experimentou isso?