Зачем вам нужно реализовать это в самом элементе управления?
Предполагая, что это не является абсолютным требованием, я бы обработал это в свойстве, которое возвращает дочерние элементы указанного узла. Если дочерние элементы еще не заполнены, используйте фоновый поток для загрузки дочерних элементов, и, как только они будут найдены, уведомите поток пользовательского интерфейса, а затем добавьте дочерний объект в коллекцию дочерних элементов. Предполагая, что вы используете ObservableCollection
(или хотя бы коллекцию, которая реализует INotifyCollectionChanged
), при добавлении дочерних элементов они будут отображаться в пользовательском интерфейсе асинхронно.