private LangViewModels() { VirtualRoot.On <LangSetRefreshedEvent>("刷新语言后刷新VM数据集", LogEnum.None, action: message => { Init(); }); VirtualRoot.On <LangAddedEvent>("添加了语言后刷新VM内存", LogEnum.None, action: message => { _langVms.Add(new LangViewModel(message.Source)); OnPropertyChanged(nameof(LangVms)); }); VirtualRoot.On <LangUpdatedEvent>("修改了语言后刷新VM内存", LogEnum.None, action: message => { LangViewModel langVm = _langVms.FirstOrDefault(a => a.Id == message.Source.GetId()); if (langVm != null) { langVm.Update(message.Source); } }); VirtualRoot.On <LangRemovedEvent>("删除了语言后刷新VM内存", LogEnum.None, action: message => { LangViewModel langVm = _langVms.FirstOrDefault(a => a.Id == message.Source.GetId()); if (langVm != null) { _langVms.Remove(langVm); OnPropertyChanged(nameof(LangVms)); } }); Init(); }
public List <LangViewItemViewModel> GetLangItemVms(LangViewModel lang, string viewId) { if (!_dicByLangAndView.ContainsKey(lang)) { return(new List <LangViewItemViewModel>()); } var dic = _dicByLangAndView[lang]; if (!dic.ContainsKey(viewId)) { return(new List <LangViewItemViewModel>()); } return(dic[viewId]); }
private LangViewModels() { Global.Access <LangAddedEvent>( Guid.Parse("F0417261-877F-4310-895F-2B14099B2ABF"), "添加了语言后刷新VM内存", LogEnum.None, action: message => { _langVms.Add(new LangViewModel(message.Source)); OnPropertyChanged(nameof(LangVms)); }); Global.Access <LangUpdatedEvent>( Guid.Parse("646181E6-044D-4D2F-B357-A3B376DAE680"), "修改了语言后刷新VM内存", LogEnum.None, action: message => { LangViewModel langVm = _langVms.FirstOrDefault(a => a.Id == message.Source.GetId()); if (langVm != null) { langVm.Update(message.Source); } }); Global.Access <LangRemovedEvent>( Guid.Parse("3684144A-26C8-47B9-881D-E66930A6E87D"), "删除了语言后刷新VM内存", LogEnum.None, action: message => { LangViewModel langVm = _langVms.FirstOrDefault(a => a.Id == message.Source.GetId()); if (langVm != null) { _langVms.Remove(langVm); OnPropertyChanged(nameof(LangVms)); } }); foreach (var lang in LangSet.Instance) { _langVms.Add(new LangViewModel(lang)); } _currentLangVm = _langVms.FirstOrDefault(a => a.Id == Global.Lang.GetId()); if (_currentLangVm == null) { _currentLangVm = _langVms.First(); } }
public LangViewModel(Guid id) { _id = id; this.Edit = new DelegateCommand(() => { LangEdit.ShowWindow(new LangViewModel(this)); }); this.Remove = new DelegateCommand(() => { if (this.Id == Guid.Empty) { return; } DialogWindow.ShowDialog(message: $"您确定删除{this.Code}语言吗?", title: "确认", onYes: () => { VirtualRoot.Execute(new RemoveLangCommand(this.Id)); }, icon: IconConst.IconConfirm); }); this.SortUp = new DelegateCommand(() => { LangViewModel upOne = LangViewModels.Current.LangVms.OrderByDescending(a => a.SortNumber).FirstOrDefault(a => a.SortNumber < this.SortNumber); if (upOne != null) { int sortNumber = upOne.SortNumber; upOne.SortNumber = this.SortNumber; VirtualRoot.Execute(new UpdateLangCommand(upOne)); this.SortNumber = sortNumber; VirtualRoot.Execute(new UpdateLangCommand(this)); LangViewModels.Current.OnPropertyChanged(nameof(LangViewModels.LangVms)); } }); this.SortDown = new DelegateCommand(() => { LangViewModel nextOne = LangViewModels.Current.LangVms.OrderBy(a => a.SortNumber).FirstOrDefault(a => a.SortNumber > this.SortNumber); if (nextOne != null) { int sortNumber = nextOne.SortNumber; nextOne.SortNumber = this.SortNumber; VirtualRoot.Execute(new UpdateLangCommand(nextOne)); this.SortNumber = sortNumber; VirtualRoot.Execute(new UpdateLangCommand(this)); LangViewModels.Current.OnPropertyChanged(nameof(LangViewModels.LangVms)); } }); }