private static void PropertyItemLoaded(object?sender, EventArgs e, PropertyResolverEx resolverEx, bool hasDescription)
    {
        var propertyItem = (PropertyItem)sender !;

        // Make the child textbox not use built-in tooltip
        var textbox = FindChild <TextBox>(propertyItem, "");

        if (textbox != null)
        {
            textbox.ToolTip   = null;
            textbox.Focusable = false;
        }

        // Make the parent expander non-focusable for controllers.
        var expander = WpfUtilities.FindParent <Expander>(propertyItem);

        if (expander != null)
        {
            expander.Focusable = false;
        }

        if (!hasDescription)
        {
            return;
        }

        var tooltip = new ToolTip();

        tooltip.DataContext     = propertyItem;
        tooltip.Content         = propertyItem.Description;
        tooltip.PlacementTarget = propertyItem;
        tooltip.SetResourceReference(FrameworkElement.StyleProperty, "PropertyGridTooltip");
        ToolTipService.SetInitialShowDelay(tooltip, 0);
        ToolTipService.SetBetweenShowDelay(tooltip, 0);
        propertyItem.ToolTip     = tooltip;
        propertyItem.MouseEnter += (o, args) => { PropertyItemOnMouseEnter(o, args, resolverEx); };
        propertyItem.MouseLeave += PropertyItemOnMouseLeave;

        // Set grid colour to transparent so it's hit testable and can pick up mouse events
        var groupbox = FindChild <Grid>(propertyItem, "");

        if (groupbox != null)
        {
            groupbox.Background = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
        }
    }