private void RefreshRawFileList(object arg) { MyRawFolderFiles.Clear(); MyRawFolderListing.RefreshFolderListing(); MyRawFolderListing.ReQualifyListedFiles(RSSettingsModel.Instance.RawExtensionSetting); foreach (FileDescriptorModel fd in MyRawFolderListing.FileList) { MyRawFolderFiles.Add(fd); } MyRawGridView.MoveCurrentTo(null); HighlightDelta(CheckHighlightDelta); OnPropertyRaised("MyRawFolderFilesNo"); OnPropertyRaised("MyRawFilesNo"); OnPropertyRaised("MyRawFilesShownNo"); }
private void RemoveRawItem(object arg) { if (arg != null && (int)arg > -1) { // MyRawFolderFiles.RemoveAt((int)arg); Can't do this... // In order for us to properly remove Collection item, we have to precisely know, // what item is at this index of View (View may be filtered, thus index will be different) // FileDescriptorModel fdv = MyRawGridView.Cast<FileDescriptorModel>().ToArray()[(int)arg]; Although it works, this seems too complicated FileDescriptorModel fdv = (FileDescriptorModel)MyRawGridView.CurrentItem; if (fdv != null) { MyRawFolderFiles.Remove(fdv); MyRawFolderListing.FileList.Remove(fdv); MyRawGridView.MoveCurrentTo(null); OnPropertyRaised("MyRawFolderFilesNo"); OnPropertyRaised("MyRawFilesNo"); OnPropertyRaised("MyRawFilesShownNo"); } } }