Slate - Fill a STreeView with SCompoundWidget

Hi !

I’m trying to fill a STreeView with a SComponentWidget by pushing a button.
Currently, I have a good result with a FString Array:

.h

#pragma once

#include "CoreMinimal.h"
#include "Widgets/SCompoundWidget.h"
#include "Widgets/Views/ITableRow.h"
#include "Widgets/Views/STableViewBase.h"
#include "Widgets/Views/STreeView.h"

class UMMGTreeViewSettings;

class SMMGTreeView : public SCompoundWidget
{
public:
	SLATE_BEGIN_ARGS(SMMGTreeView) {}
       	SLATE_ARGUMENT(UMMGTreeViewSettings*, MMGTreeViewSettings)
    SLATE_END_ARGS()

void Construct(const FArguments& TreeArgs);
	FReply ButtonPressed();
	
	TSharedRef<ITableRow> OnGenerateListRow(TSharedPtr<FString> Item, const TSharedRef<STableViewBase>& OwnerTable);
	void OnGetChildren(TSharedPtr<FString> Item, TArray<TSharedPtr<FString>>& OutChildren);
	
	TSharedPtr<STreeView<TSharedPtr<FString>>> TreeViewWidget;


private:
	UMMGTreeViewSettings* MMGTreeViewSettings  = nullptr;
};

.cpp

#include "UI/MMGTreeView.h"
#include "UI/MMGSettings.h"

#include "Widgets/Layout/SScrollBox.h"

#define LOCTEXT_NAMESPACE "MMGTreeView"

void SMMGTreeView::Construct(const FArguments& TreeArgs)
{
	if(TreeArgs._MMGTreeViewSettings)
	{
		MMGTreeViewSettings = TreeArgs._MMGTreeViewSettings;
	}
	ensure(MMGTreeViewSettings);

	ChildSlot[
		
			SNew(SScrollBox)
			+ SScrollBox::Slot()[
				
					SNew(SButton)
					.Text(FText::FromString("Generate Row"))
					.OnClicked(this, &SMMGTreeView::ButtonPressed)
				]
			+ SScrollBox::Slot()[
				
					SAssignNew(TreeViewWidget, STreeView<TSharedPtr<FString>>)
					.ItemHeight(24)
					.TreeItemsSource(&MMGTreeViewSettings->Items)
					.OnGenerateRow(this, &SMMGTreeView::OnGenerateListRow)
					.OnGetChildren(this, &SMMGTreeView::OnGetChildren)
				]
		];
}

FReply SMMGTreeView::ButtonPressed()
{
	MMGTreeViewSettings->Items.Add(MakeShareable(new FString("Row")));
	TreeViewWidget->RequestTreeRefresh();
	return FReply::Handled();
}


TSharedRef<ITableRow> SMMGTreeView::OnGenerateListRow(TSharedPtr<FString> Item, const TSharedRef<STableViewBase>& OwnerTable)
{
	return
		SNew(STableRow< TSharedPtr<FString>>, OwnerTable)
		.Padding(2.0f)[
		
			SNew(STextBlock).Text(FText::FromString(*Item.Get()))
		];
}
.
.
.

How can I replace the FString by, for exemple, this simple SComponentWidget ?

void SMMGSimpleWidget::Construct(const FArguments& InArgs)
{
	ChildSlot[
	SNew(STextBlock)
	.Text(FText::FromString("Row"))
	];
}

Thanks !