In theory there should have been a compile error telling you that you cannot use TableViews with non-memory managed pointers. That is, the memory address of your type has to be guaranteed unique.
UObject* are garbage collected, so you can use those. You can also use
TSharedPtr< FString >/
TSharedRef< FString > because they have the necessary property that their memory address is a unique ID. However, with a regular pointer, it is possible to have a pointer, delete it, and then have a new object allocated in the same location. Therefore, regular pointers are not unique and cannot be used by the TableViews.
So you’re going to have to do
SListView< TSharedRef< FString > > or
SListView< TSharedPtr< FString > >.
This seems like a pain, but it enabled selection tracking, expansion tracking, and virtualization.
Let me know if you have questions about all this.
EDIT: AnswerHUB is not cooperating with C++ templates. Needs extra space like so:
< T >.