visual que programar net invocar eventos evento dinamicos crear control boton wpf xaml event-handling styles infragistics

wpf - programar - que es un evento de un control



No se puede adjuntar el controlador de eventos al Elemento de menĂº contextual en Estilo (1)

Intente agregar el ContextMenu como recurso y la referencia como StaticResource . No tengo XamDataGrid instalado, así que no puedo probarlo, pero debe estar en las siguientes líneas.

<igDP:XamDataGrid.Resources> <ContextMenu x:Key="contextMenu"> <ContextMenu.Items> <MenuItem Header="Select All" Command="SelectAll"> <MenuItem.Icon> <Image Source="../icons/table_select_all.png"/> </MenuItem.Icon> </MenuItem> <MenuItem Header="Accept for column" Click="MenuItem_Click"></MenuItem> </ContextMenu.Items> </ContextMenu> <Style TargetType="{x:Type editors:XamNumericEditor}"> <Setter Property="ContextMenu" Value="{StaticResource contextMenu}"/> </Style> </igDP:XamDataGrid.Resources>

Alternativamente, puede usar un EventSetter

<MenuItem Header="Accept for column"> <MenuItem.Style> <Style TargetType="MenuItem"> <EventSetter Event="Click" Handler="MenuItem_Click"/> </Style> </MenuItem.Style> </MenuItem>

Actualizar

Para obtener PlacementTarget necesitarás el ContextMenu . Podría pasar esto como CommandParameter

<MenuItem Header="Accept for column" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType={x:Type ContextMenu}}}" Click="MenuItem_Click"> </MenuItem> private void MenuItem_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = sender as MenuItem; ContextMenu contextMenu = menuItem.CommandParameter as ContextMenu; var placementTarget = contextMenu.PlacementTarget; //... }

Estoy tratando de modificar ContextMenu predeterminado para XamNumericEditor en la XamDataGrid editable de XamDataGrid .

Aquí está mi código XAML:

<igDP:XamDataGrid.Resources> <Style TargetType="{x:Type editors:XamNumericEditor}"> <Setter Property="ContextMenu"> <Setter.Value> <ContextMenu> <ContextMenu.Items> <MenuItem Header="Select All" Command="SelectAll"> <MenuItem.Icon> <Image Source="../icons/table_select_all.png"/> </MenuItem.Icon> </MenuItem> <MenuItem Header="Accept for column" Click="MenuItem_Click"> </MenuItem> </ContextMenu.Items> </ContextMenu> </Setter.Value> </Setter> </Style> </igDP:XamDataGrid.Resources>

El archivo de código detrás contiene el controlador de eventos para este elemento de menú:

private void MenuItem_Click(object sender, RoutedEventArgs e) { //... }

Pero cuando lo inicio, capté una excepción con el mensaje: No se puede convertir el objeto de tipo ''System.Windows.Controls.MenuItem'' para escribir ''System.Windows.Controls.ContextMenu''.

¿Puedes ayudarme con eso? Gracias.