/// <summary> /// Removes all occurrances of given file. /// </summary> /// <param name="file">Recently used file.</param> public void Remove(RecentlyUsedFile file) { var changed = false; for (var i = BaseItems.Count - 1; i >= 0; i--) { if (BaseItems[i].Equals(file)) { BaseItems.RemoveAt(i); changed = true; } } if (changed) { OnChanged(EventArgs.Empty); } }
/// <summary> /// Inserts file name on top of list if one does not exist or moves it to top if one does exist. /// </summary> /// <param name="fileName">File name.</param> public bool Push(string fileName) { RecentlyUsedFile file; try { file = new RecentlyUsedFile(fileName); } catch (ArgumentException) { return(false); } BaseItems.Insert(0, file); for (var i = BaseItems.Count - 1; i > 0; i--) //remove same file if somewhere on the list { if (BaseItems[i].Equals(file)) { BaseItems.RemoveAt(i); } } if (BaseItems.Count > MaximumCount) //limit to maximum count { BaseItems.RemoveRange(MaximumCount, BaseItems.Count - MaximumCount); } OnChanged(EventArgs.Empty); return(true); }