Como faço para que um menu de contexto funcione em uma coluna Telerik RadGridView?
-
20-09-2019 - |
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?
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.