private void AssociatedObjectOnInitialized()
    {
        var adorner = AddAdorner(AssociatedObject);

        _adorner = adorner;

        var isAdornerVisible = GetIsAdornerVisible(AssociatedObject, adorner);

        isAdornerVisible
        .ObserveOn(RxApp.MainThreadScheduler)
        .Subscribe(isVisible => _adorner.IsVisible = isVisible);
    }
    private TreeDataGridItemDetailsAdorner AddAdorner(TreeDataGridRow?to)
    {
        var layer = GetAdornerLayer();

        var adorner = new TreeDataGridItemDetailsAdorner
        {
            [AdornerCanvas.AdornedElementProperty] = to,
            [AdornerCanvas.IsClipEnabledProperty]  = false,
            Row = to
        };

        var setLogicalParent = (ISetLogicalParent)adorner;

        setLogicalParent.SetParent(to);
        layer.Children.Add(adorner);
        return(adorner);
    }