Example #1
0
        private async void CloseTab(MyTabItem tabItem)
        {
            if (_dataProvider.TabsRepository.TabItems.Count == 1)
            {
                await _dataProvider.DialogsManager.ShowMessage("Нельзя удалить единственную вкладку.");

                return;
            }

            if (
                !await
                _dataProvider.DialogsManager.ShowRequest("Удалить выбранную вкладку и все связанные с ней элементы?"))
            {
                return;
            }

            var assignedObjectsCount =
                _dataProvider.ObjectsRepository.ViewModels.Count(t => t.Properties.TabId == tabItem.Id);

            if (assignedObjectsCount != 0)
            {
                if (!await _dataProvider.DialogsManager.ShowRequest(
                        $"Выбранная вкладка содержит объекты ({assignedObjectsCount}).{Environment.NewLine}Продолжить?"))
                {
                    return;
                }
            }

            _dataProvider.TabsRepository.RemoveItem(tabItem);
            var removedObjects =
                _dataProvider.ObjectsRepository.ViewModels.Where(t => t.Properties.TabId == tabItem.Id).ToList();

            removedObjects.ForEach(t => _dataProvider.ObjectsRepository.Remove(t.Properties.Id));
        }
Example #2
0
        public void RemoveItem(MyTabItem tabItem)
        {
            var selector = TabItems.FirstOrDefault(t => t.Id == tabItem.Id);

            if (selector == null)
            {
                return;
            }

            TabItems.Remove(selector);
        }