public async Task Load() { await _item.Load(); LoadChildItems(); DirectoriesIsLoadedEvent?.Invoke(this); }
/// <summary> /// Загрузка директорий. /// </summary> public async Task Load() { InProcessChange(true); StartLoadDirectoriesEvent?.Invoke(); await Task.WhenAll(LeftDirectory.Load(), RightDirectory.Load()); ClearChildItems(); LoadChildItems(); DirectoriesIsLoadedEvent?.Invoke(this); InProcessChange(false); }
private void FinishedSync(ISynchronizedItem synchronizedItem) { var updatedItem = LeftItem == synchronizedItem ? RightItem : LeftItem; // Если Item == null, значит элемент удалили, и тут больше делать ничего не надо. if (updatedItem.Item != null) { StartLoadDirectoriesEvent?.Invoke(); updatedItem.Item.Load().Wait(); // Была выполнена синхронизация, и нам не известно, обновлялись, удалялись или добавлялись дочерние элементы, // поэтому заново загрузим дочерние элементы удаляем все дочерние элементы и заново загружаем. ClearChildItems(); LoadChildItems(); DirectoriesIsLoadedEvent?.Invoke(this); } InProcessChange(false); }