This is a migrated thread and some comments may be shown as answers.

[Solved] System.ArgumentException on attaching eventhMouseDoubleClick eventandler to

2 Answers 87 Views
GridView
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Maarten
Top achievements
Rank 1
Maarten asked on 24 Mar 2009, 04:03 PM
Hello,

I'm writing some code to have our own MouseDoubleClick event on a GridViewRow.
As you can see in the example below, I want to attach an eventhandler to the MouseDoubleClick -event of the GridViewCell.

When I run the code I'm getting a "System.ArgumentException".

Stacktrace :
   at Telerik.Windows.EventManager.CheckParameters(RoutedEvent routedEvent, Delegate handler)
   at Telerik.Windows.RadRoutedEventHelper.AddHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler, Boolean handledEventsToo)
   at Telerik.Windows.DependencyObjectExtensions.AddHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
   at Telerik.Windows.Controls.GridView.GridViewCell.add_MouseDoubleClick(MouseButtonEventHandler value)
   at McKinsey.Horizon.Composite.Controls.CustomControl.DataGrid.DataGrid.<TelerikGrid_RowLoaded>b__2(GridViewCell c)
   at System.Collections.Generic.List`1.ForEach(Action`1 action)
   at McKinsey.Horizon.Composite.Controls.CustomControl.DataGrid.DataGrid.TelerikGrid_RowLoaded(Object sender, RowLoadedEventArgs e)
   at Telerik.Windows.Controls.RadGridView.OnRowLoaded(RowLoadedEventArgs e)
   at Telerik.Windows.Controls.GridView.GridViewRowItem.GridViewRowItem_Loaded(Object sender, RoutedEventArgs e)
   at System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)

Code:
        void TelerikGrid_RowLoaded(object sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)
        {
            if (e.Row is GridViewRow)
            {
                e.Row.ChildrenOfType<GridViewCell>().ToList().ForEach(
                    c => c.MouseDoubleClick += new MouseButtonEventHandler(cell_MouseDoubleClick));
            }
        }

        void cell_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if(sender is GridViewCell )
            {
                ...
            }
        }

Could you please advice me on this, or provide another way to implement the wanted behaviour.

Thanks in advance,

Maarten Thoelen

2 Answers, 1 is accepted

Sort by
0
Vlad
Telerik team
answered on 24 Mar 2009, 04:25 PM
Hello Maarten,

I've attached small demo application to illustrate you how to achieve this.

Let me know how it goes.

Regards,
Vlad
the Telerik team

Check out Telerik Trainer , the state of the art learning tool for Telerik products.
0
Maarten
Top achievements
Rank 1
answered on 25 Mar 2009, 07:15 AM
Thanks for your help.

Kind regards,

Maarten Thoelen
Tags
GridView
Asked by
Maarten
Top achievements
Rank 1
Answers by
Vlad
Telerik team
Maarten
Top achievements
Rank 1
Share this question
or