public void RefreshProgramsToStartListView() { // //TODO: This is a temporary solution, need to figure out how to refresh ListView without clearing whole list ObservableCollection <ProgramToStart> _temp = new ObservableCollection <ProgramToStart>(); foreach (ProgramToStart item in ProgramsToStartList) { ProgramToStart insert = new ProgramToStart(item.ProgramName, item.Path); insert.StartingOrder = item.StartingOrder; _temp.Add(insert); } ProgramsToStartList.Clear(); foreach (ProgramToStart item in _temp) { ProgramToStart insert = new ProgramToStart(item.ProgramName, item.Path); insert.StartingOrder = item.StartingOrder; ProgramsToStartList.Add(insert); } }
private void AddProgramContextMenuItemClicked(object obj) { //TODO: This is breaking the MVVM concept, need to figure out how to this in MVVM style OpenFileDialog openFileDialog = new OpenFileDialog(); if (openFileDialog.ShowDialog() == true) { ProgramToStart program = new ProgramToStart(openFileDialog.SafeFileName, openFileDialog.FileName); //check if user clicked on program or on some empty field in ListView //if user clicked on program then insert new program before the selected item if (SelectedProgramOnProgramsToStartListView != null) { ProgramsToStartList.Insert(SelectedProgramOnProgramsToStartListView.StartingOrder - 1, program); } else //if user clicked on some empty field then add new program at the end of the list { ProgramsToStartList.Add(program); } UpdateStartingOrdersInProgramsToStartListView(); RefreshProgramsToStartListView(); } }