Pergunta

Eu tenho o seguinte método que adiciona uma nova coluna a um 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) }
                }
            }
        }
    });
}

O problema que estou tendo é que o menu de contexto nunca aparece quando clico com o botão direito do meu lugar na grade. Se eu vincular o menu de contexto diretamente à grade, ou seja,

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

Em seguida, o menu de contexto aparece, mas não tenho como determinar em qual coluna o usuário clicou com o botão direito do mouse. Alguém conseguiu menus de contexto para trabalhar em colunas individuais ou colunas?

Foi útil?

Solução

Você pode verificar minha resposta no seu post do fórum:http://www.telerik.com/community/forums/wpf/gridview/column-contextmenu.aspx

Outras dicas

Não posso falar pela grade da Telerik, mas com a grade da Infragistics, você anexaria o menu de contexto à grade e, em seguida, usaria o local do mouse para determinar o que o usuário clicou com o botão direito do mouse na grade. A grade infragística possui alguns métodos decentes auxiliares para facilitar o teste de acerto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top