Pregunta

Tengo el siguiente método que añade una nueva columna a un Telerik RadGridView:

private void CreateNewColumn(FieldDescriptor fd, uint fieldno) {
    fieldGrid.Columns.Add(new GridViewDataColumn() {
        UniqueName = fd.fieldName,
        Header = fd.displayName,
        DataMemberBinding = new Binding("Fields[" + fieldno + "]"),
        ContextMenu = new ContextMenu() {
            Tag = fieldno,
            Items = {
                new MenuItem() {
                    Header = "Field Properties",
                    Command = Commands.FieldProperties,
                    CommandBindings = { new CommandBinding(Commands.FieldProperties, FieldProperties_Execute) } 
                },
                new MenuItem() {
                    Header = "Delete Field",
                    Command = Commands.DeleteField,
                    CommandBindings = { new CommandBinding(Commands.DeleteField, DeleteField_Execute) }
                }
            }
        }
    });
}

El problema que estoy teniendo es que el menú contextual no aparece cuando hago clic derecho en cualquier lugar de la red. Si Ato el menú contextual directamente a la red, es decir.

fieldGrid.ContextMenu = new ContextMenu() { ...

A continuación, en el menú contextual aparece, pero no tengo ninguna manera de determinar qué columna el usuario hace clic derecho sobre. Alguien ha conseguido menús de contexto para trabajar en distintas columnas o los encabezados de columna?

¿Fue útil?

Solución

Otros consejos

No puedo hablar por la rejilla de Telerik, pero con la rejilla Infragistics que iba a unir el menú contextual a la red, y luego usar la ubicación del ratón para determinar lo que el usuario hace clic derecho en la cuadrícula. La rejilla Infragistics tiene algunos métodos de ayuda decente para facilitar la prueba de posicionamiento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top