/// <summary>
        /// Assign Selection Changed Behavior to CommandParameter Dependency Property
        /// </summary>
        /// <param name="dependencyObject"></param>
        /// <param name="e"></param>
        private static void OnSetCommandParameterCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
        {
            var dataGrid = dependencyObject as RadGridView;

            if (dataGrid != null)
            {
                RadGridViewSelectionChangedCommandBehaviour behavior = GetOrCreateBehavior(dataGrid);
                behavior.CommandParameter = e.NewValue;
            }
        }
        private static RadGridViewSelectionChangedCommandBehaviour GetOrCreateBehavior(RadGridView dataGrid)
        {
            var behavior = dataGrid.GetValue(ClickCommandBehaviorProperty) as RadGridViewSelectionChangedCommandBehaviour;

            if (behavior == null)
            {
                behavior = new RadGridViewSelectionChangedCommandBehaviour(dataGrid);
                dataGrid.SetValue(ClickCommandBehaviorProperty, behavior);
            }
            return(behavior);
        }
 /// <summary>
 /// Assign Selection Changed Behavior to Command Dependency Property
 /// </summary>
 /// <param name="dependencyObject">RadGridView</param>
 /// <param name="e"></param>
 private static void OnSetCommandCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
 {
     try
     {
         var dataGrid = dependencyObject as RadGridView;
         if (dataGrid != null)
         {
             RadGridViewSelectionChangedCommandBehaviour behaviour = GetOrCreateBehavior(dataGrid);
             behaviour.Command = e.NewValue as ICommand;
         }
     }
     catch (Exception) { }
 }