private static void OnSetCommandParameterCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
    {
        ListViewItem controlToWhomWeBind = dependencyObject as ListViewItem;

        if (controlToWhomWeBind != null)
        {
            ListViewItemDoubleClickCommandBehaviour behavior = GetOrCreateBehavior(controlToWhomWeBind);
            behavior.CommandParameter = e.NewValue;
        }
    }
    private static ListViewItemDoubleClickCommandBehaviour GetOrCreateBehavior(
        ListViewItem controlToWhomWeBind)
    {
        ListViewItemDoubleClickCommandBehaviour behavior =
            controlToWhomWeBind.GetValue(DoubleClickCommandBehaviorProperty) as
            ListViewItemDoubleClickCommandBehaviour;

        if (behavior == null)
        {
            behavior = new ListViewItemDoubleClickCommandBehaviour(controlToWhomWeBind);
            controlToWhomWeBind.SetValue(DoubleClickCommandBehaviorProperty, behavior);
        }
        return(behavior);
    }