void Start_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { DirectoryInfoWrapper wrapper = sender as DirectoryInfoWrapper; if (wrapper != null) { selectedFolder = wrapper; if (e.PropertyName == "IsSelected") { Files = wrapper.Data.children; } if (e.PropertyName == "IsExpanded") { foreach (var item in wrapper.Children) { CreateChildren(item); } } } }
private void CreateChildren(DirectoryInfoWrapper p_wrapper) { if (p_wrapper.Children == null) { p_wrapper.Children = new ObservableCollection <DirectoryInfoWrapper>(); try { foreach (var directory in p_wrapper.Data.children) { DirectoryInfoWrapper childWrapper = new DirectoryInfoWrapper(directory) { Data = directory }; childWrapper.PropertyChanged += Start_PropertyChanged; p_wrapper.Children.Add( childWrapper ); } } catch { } } }