que tienen este recurso menú contextual:¿Cómo implementar comandos para usar métodos ancestrales en WPF?
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ContextMenu x:Key="FooContextMenu">
<ContextMenu.CommandBindings>
<CommandBinding Command="Help" Executed="{Binding ElementName=MainTabs, Path=HelpExecuted}" />
</ContextMenu.CommandBindings>
<MenuItem Command="Help">
<MenuItem.Icon>
<Image Source="../Resources/Icons/Help.png" Stretch="None" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</ResourceDictionary>
Quiero volver a utilizarlo en dos lugares. En primer lugar estoy tratando de ponerlo en un DataGrid
:
<DataGrid ContextMenu="{DynamicResource FooContextMenu}">...
El ContextMenu
en sí funciona bien, pero con la Executed="..."
ahora he rompe la aplicación y los tiros:
Una primera oportunidad de tipo 'System.InvalidCastException' ocurrió en PresentationFramework.dll
información adicional: No se puede convertir objeto de tipo 'System.Reflection.RuntimeEventInfo' para escribir 'System.Reflection.MethodInfo'.
Si elimino toda la definición Executed="..."
, el código funciona (y el comando no hace nada/está atenuado). La excepción se produce tan pronto como hago clic con el botón derecho en la cuadrícula/abro el menú contextual.
El DataGrid
se coloca debajo de unos pocos elementos, pero al final todos ellos se encuentran por debajo de un TabControl
(llamado MainTabs
) que tiene ItemsSource
conjunto a una colección de FooViewModel
s, y en ese FooViewModel
tengo un método HelpExecuted
la que quiero estar llamado.
Vamos a visualizar:
- TabControl (
ItemsSource=ObservableCollection<FooViewModel>
,x:Name=MainTabs
)- cuadrícula
- Más IU
- cuadrícula de datos (con juego menú contextual)
- Más IU
- cuadrícula
¿Por qué recibo este error y cómo puedo hacer que el comando del menú contextual para "objetivo" del FooViewModel
's HelpExecuted
método?
creo ese control de MainTabs no contiene una propiedad HelpExecuted. Contiene solo una lista de FooViewModel. –