Проблема заключается в том, что вы фактически назначаете новый экземпляр ObservableCollection<FolderInfo>
свойству subFolders
, когда есть изменение, но привязка данных привязана к предыдущему экземпляру, поэтому он не наблюдает это изменение. Есть два решения этой проблемы:
1) Измените экземпляр и вызовите событие PropertyChanged
:
private ObservableCollection<FolderInfo> _subFolders = new ObservableCollection<FolderInfo>();
public ObservableCollection<FolderInfo> subFolders
{
get => _subFolders;
set
{
_subFolders = value;
OnPropertyChanged();
}
}
2) Вместо назначения нового экземпляра очистите исходный и просто добавьте новые элементы:
Так что вместо:
ff.subFolders = new ObservableCollection<FolderInfo>();
ff.subFolders.Add(something);
Вы будете делать:
ff.subFolders.Clear();
ff.subFolders.Add(something);