public WorkSpaceViewModel() { ObjectSources = new ObservableCollection <IObjectSource>(); ObjectSources.CollectionChanged += (send, e) => { PropertyChange(nameof(ObjectSources)); PropertyChange(nameof(Models)); }; Folder folder = new Folder("example", @"C:\dir", null); for (int i = 0; i < 1000; i++) { string fictivePath = $"exmple {i}.fbx"; folder.AddObject(fictivePath, ObjectModelFactory.GetObject(fictivePath)); } ObjectSources.Add(folder); RelayCommand <object> addDataSourceCommand = new RelayCommand <object>(); RelayCommand <IObjectSource> selectObjectSourceCommand = new RelayCommand <IObjectSource>(); addDataSourceCommand.RegisterCallback(AddDataSource); AddDataSourceCommand = addDataSourceCommand; }