예제 #1
0
            public async Task Load()
            {
                await _item.Load();

                LoadChildItems();
                DirectoriesIsLoadedEvent?.Invoke(this);
            }
예제 #2
0
        /// <summary>
        /// Загрузка директорий.
        /// </summary>
        public async Task Load()
        {
            InProcessChange(true);

            StartLoadDirectoriesEvent?.Invoke();

            await Task.WhenAll(LeftDirectory.Load(), RightDirectory.Load());

            ClearChildItems();
            LoadChildItems();

            DirectoriesIsLoadedEvent?.Invoke(this);

            InProcessChange(false);
        }
예제 #3
0
        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);
        }