1

我有以下方法向 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) }
                }
            }
        }
    });
}

我遇到的问题是,当我右键单击网格上的任何位置时,上下文菜单永远不会出现。如果我将上下文菜单直接绑定到网格,即

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

然后出现上下文菜单,但我无法确定用户右键单击了哪一列。有没有人获得上下文菜单来处理单个列或列标题?

4

2 回答 2

0

我不能代表 Telerik 的网格,但是使用 Infragistics 网格,您可以将上下文菜单附加到网格,然后使用鼠标位置来确定用户在网格中右键单击的内容。Infragistics 网格有一些不错的辅助方法来促进命中测试。

于 2010-01-11T18:37:36.677 回答
-1

您可以在您的论坛帖子中查看我的答案: http ://www.telerik.com/community/forums/wpf/gridview/column-contextmenu.aspx

于 2010-01-12T09:43:16.073 回答