private void WindowLoaded(object sender, RoutedEventArgs e) { this.DisableMaxmize(true); //禁用窗口最大化功能 this.RemoveSystemMenuItems(Win32.SystemMenuItems.Restore | Win32.SystemMenuItems.Minimize | Win32.SystemMenuItems.Maximize | Win32.SystemMenuItems.SpliteLine); //去除窗口指定的系统菜单 _autoHideBehavior = new AutoHideWindowBehavior { AutoHideFactor = AutoHideFactor, }; _autoHideBehavior.Attach(this); _trayIcon = InitTrayIcon(); //初始化系统托盘 NoteTextArea.Focus(); //文本输入框获取焦点 DbContext.Load(ConfigurationManager.AppSettings[DataFilePathKey]); //加载记录数据 //筛选未完成的记录 foreach (var item in DbContext.Notes.Where(m => !m.Deleted && !m.Finished)) { NoteViewModels.Add(item); } //绑定数据 ListView.ItemsSource = NoteViewModels; this.SetPropertyAnimation(HeightProperty, new DoubleAnimation(InitHeight, _initedHeight, new Duration(TimeSpan.FromSeconds(2)))); }
public DeckViewModel(Models.Deck deckModel) { _deckModel = deckModel; // Load available input languages foreach (var lang in InputLanguageManager.Current.AvailableInputLanguages ?? new List <object>()) { Languages.Add(CultureInfo.CreateSpecificCulture(lang.ToString())); } // Load system default language var defaultLang = InputLanguageManager.Current.CurrentInputLanguage; // TODO: Remove hard-coded initialization // Initialize scripts var defaultScript = new NoneScript("None"); Scripts.Add(defaultScript); Scripts.Add(new MirrorScript("Clone")); Scripts.Add(new FuriganaScript(MyQuery, "Furigana")); Scripts.Add(new DictionaryFormScript(MyQuery, "Dictionary Form")); Scripts.Add(new NotesScript(MyQuery, "Notes")); // Initialize deck settings DeckSettings = new DeckSettings(defaultLang, defaultScript); foreach (var noteModel in deckModel.note_models) { DeckSettings.AddFieldSettings(noteModel); } // Create dictionary of noteModels foreach (var noteModel in deckModel.note_models) { _noteModels.Add(noteModel.crowdanki_uuid, noteModel); NoteModels.Add(noteModel); } SelectedNoteModel = NoteModels.First(); foreach (var note in deckModel.notes) { // Add notes where note model exists if (_noteModels.TryGetValue(note.note_model_uuid, out var noteModel)) { NoteViewModels.Add(new NoteViewModel(note, noteModel, this)); } else { // TODO Error handling } } Sort(); }
private NoteViewModel GetNoteViewModel(Note note) { NoteViewModel ntvm = null; if (NoteViewModels.ContainsKey(note.ID)) { ntvm = NoteViewModels[note.ID]; } if (ntvm == null) { ntvm = new NoteViewModel(note); NoteViewModels.Add(note.ID, ntvm); } return(ntvm); }
private void Execute(Actions action) { switch (action) { case Actions.New: if (NewBtn.IsEnabled) { SetNewState(); } break; case Actions.Save: if (SaveBtn.IsEnabled) { var text = ""; var strs = NoteTextArea.Text.Split(new [] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); for (var i = 0; i < strs.Length - 1; i++) { var str = strs[i].Trim(); if (str.Length != 0) { text += str + Environment.NewLine; } } text += strs[strs.Length - 1]; if (ListView.SelectedIndex == -1) { var newId = DbContext.Notes.Count == 0 ? 1 : DbContext.Notes.Max(m => m.Id) + 1; _selectedNote = new Note(newId, text); DbContext.Notes.Add(_selectedNote); NoteViewModels.Add(_selectedNote); ListView.SelectedIndex = NoteViewModels.Count - 1; } else { _selectedNote.Content = text; _selectedNote.LastModTime = DateTime.Now; } DbContext.SaveChanged(); _textChanged = false; UpdateState(); } break; case Actions.Finish: if (FinishBtn.IsEnabled) { NoteViewModels.RemoveAt(ListView.SelectedIndex); _selectedNote.Finished = true; _selectedNote.LastModTime = DateTime.Now; DbContext.SaveChanged(); SetNewState(); } break; case Actions.Delete: if (DeleteBtn.IsEnabled) { NoteViewModels.RemoveAt(ListView.SelectedIndex); _selectedNote.Deleted = true; _selectedNote.LastModTime = DateTime.Now; DbContext.SaveChanged(); SetNewState(); } break; case Actions.Close: Close(); break; } }