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 に答える