public MergedInventoryViewModel() { MergedInventory = new SynchronizedObservableCollection <MergedInventoryItem>(); MergedInventoryView = CollectionViewUtils.InitLiveView(o => o != null, MergedInventory, new string[] { }, new[] { new SortDescription("Item.Item.Id", ListSortDirection.Ascending), new SortDescription("Item.Item.RareGrade", ListSortDirection.Ascending), }); ((ICollectionView)MergedInventoryView).CollectionChanged += Reeeee; }
public void LoadSkills(Class c) { if (c == Class.None) { return; } var filename = TccUtils.ClassEnumToString(c).ToLower() + "-skills.xml"; SkillConfigParser sp; //Dispatcher.Invoke(() => //{ if (!File.Exists(Path.Combine(App.ResourcesPath, "config/skills", filename))) { SkillUtils.BuildDefaultSkillConfig(filename, c); } try { sp = new SkillConfigParser(filename, c); } catch (Exception) { var res = TccMessageBox.Show("TCC", $"There was an error while reading {filename}. Manually correct the error and press Ok to try again, else press Cancel to build a default config file.", MessageBoxButton.OKCancel, MessageBoxImage.Warning); if (res == MessageBoxResult.Cancel) { File.Delete(Path.Combine(App.ResourcesPath, "config/skills/", filename)); } LoadSkills(c); return; } foreach (var sk in sp.Main) { MainSkills.Add(sk); } foreach (var sk in sp.Secondary) { SecondarySkills.Add(sk); } foreach (var sk in sp.Hidden) { HiddenSkills.Add(sk); } Dispatcher.Invoke(() => SkillsView = CollectionViewUtils.InitLiveView(null, SkillsDatabase.SkillsForClass, new string[] { }, new SortDescription[] { })); ((ICollectionView)SkillsView).CollectionChanged += GcStahp; N(nameof(SkillsView)); N(nameof(MainSkills)); N(nameof(SecondarySkills)); SkillsLoaded?.Invoke(); //}); }
public void InitViews() { if (ItemsView != null && AbnormalitiesView != null) { return; } ItemsView = CollectionViewUtils.InitLiveView(null, Items.ToList(), new string[] { }, new SortDescription[] { }); AbnormalitiesView = CollectionViewUtils.InitLiveView(null, Passivities, new string[] { }, new SortDescription[] { }); ((ICollectionView)ItemsView).CollectionChanged += GcStahp; ((ICollectionView)AbnormalitiesView).CollectionChanged += GcStahp; }
public SystemMessagesConfigWindow() { InitializeComponent(); DataContext = this; _hiddenMessages = new SynchronizedObservableCollection <SystemMessageViewModel>(); _showedMessages = new SynchronizedObservableCollection <SystemMessageViewModel>(); SettingsHolder.UserExcludedSysMsg.ForEach(opc => { _hiddenMessages.Add(new SystemMessageViewModel(opc, SessionManager.DB.SystemMessagesDatabase.Messages[opc])); }); SessionManager.DB.SystemMessagesDatabase.Messages.ToList().ForEach(keyVal => { if (SettingsHolder.UserExcludedSysMsg.Contains(keyVal.Key)) { return; } _showedMessages.Add(new SystemMessageViewModel(keyVal.Key, keyVal.Value)); }); _hiddenMessages.CollectionChanged += (_, args) => { switch (args.Action) { case System.Collections.Specialized.NotifyCollectionChangedAction.Add: foreach (var item in args.NewItems) { SettingsHolder.UserExcludedSysMsg.Add((item as SystemMessageViewModel)?.Opcode); } break; case System.Collections.Specialized.NotifyCollectionChangedAction.Remove: foreach (var item in args.OldItems) { SettingsHolder.UserExcludedSysMsg.Remove((item as SystemMessageViewModel)?.Opcode); } break; } SettingsWriter.Save(); }; ShowedMessagesView = CollectionViewUtils.InitLiveView(null, ShowedMessages, new string[] { }, new SortDescription[] { }); HiddenMessagesView = CollectionViewUtils.InitLiveView(null, HiddenMessages, new string[] { }, new SortDescription[] { }); ((ICollectionView)ShowedMessagesView).CollectionChanged += GcPls; ((ICollectionView)HiddenMessagesView).CollectionChanged += GcPls; }