private void updateNotesMenu(IEnumerable <object> selectedNotes) { var hasVariousNotesUnequalNull = (IsGenericMidi && !_selectedNotes.Where(n => n.ToString() != _note).Any()) || (!IsGenericMidi && !_selectedNotes.Cast <AMidiDefinition>().Where(n => n.Note != _note).Any()); if (hasVariousNotesUnequalNull) { if (NotesMenu.Contains(_selectedNotesMenuItem)) { NotesMenu.Remove(SEPARATOR); NotesMenu.Remove(_selectedNotesMenuItem); } return; } _selectedNotesMenuItem.Children = NotesMenuBuilder.Instance.BuildSelectedNotesMenu(selectedNotes); if (!NotesMenu.Contains(_selectedNotesMenuItem)) { NotesMenu.Insert(0, SEPARATOR); NotesMenu.Insert(0, _selectedNotesMenuItem); } }
private void updateNotesMenu(IEnumerable <object> selectedNotes) { // remove possible previous entries while (NotesMenu_shortcuts > 0) { //OutCommands.Add(_separator); NotesMenu.RemoveAt(0); NotesMenu_shortcuts -= 1; } //// var hasVariousNotesUnequalNull = (IsGenericMidi && !_selectedNotes.Where(n => n.ToString() != _note).Any()) || (!IsGenericMidi && !_selectedNotes.Cast <AMidiDefinition>().Where(n => n.Note != _note).Any()); if (selectedNotes.Count() > 0) { // todo: do real C# code here _selectedNotesMenuItem.Children = NotesMenuBuilder.Instance.BuildSelectedNotesMenu(selectedNotes); foreach (var item in _selectedNotesMenuItem.Children) { NotesMenu.Insert(0, item); NotesMenu_shortcuts += 1; } } // note: this is already reverse sorted foreach (var st in _selectedStrings) { // FIXME: Hack: we use '_' to signifify that it has channel+note var item = new MenuItemViewModel { Text = st, Tag = '_' + st }; //special tags start with '_' NotesMenu.Insert(0, item); NotesMenu_shortcuts += 1; } }