This behavior is expected. The ItemsSource expects a collection, so if you set it to a string value (a collection of char), the treeview will be populated with it. So, a node will be created for each char from the string. In your case you will have nodes for "L", "o", "a" and "d".
To achieve your requirement you will need to use a different approach. For example, you can hide the treeview while the data is loading and display a TextBlock saying that the treeview is loading. After the data is loaded, show the treeview and hide the TextBlock.
Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin
, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.