public void Paste(IListSelectionData <T> values, bool insert) { if (!CanPaste) { return; } var e = new CancelEventArgs(); OnBeginPaste(e); if (e.Cancel) { return; } if (insert) { InsertSelection(values); } else { WriteSelection(values); } OnPasteComplete(EventArgs.Empty); }
public static void InsertSelection <T>( this IList <T> list, IListSelectionData <T> values) { if (values is null) { throw new ArgumentNullException(nameof(values)); } if (values.Selection.MaxIndex >= list.Count) { throw new ArgumentException(); } IncreaseSize(list, values.Count); var current = list.Count; for (var i = values.Count; --i >= 0;) { var freeIndex = values.Selection[i]; while (--current != freeIndex) { list[current] = list[current - (i + 1)]; } list[current] = values[freeIndex]; } }
public void WriteSelection(IListSelectionData <T> values) { if (values is null) { throw new ArgumentNullException(nameof(values)); } if (values.Count == 0) { return; } var copy = values.Copy(); var oldValues = BaseList.GetSelectionData(copy.Selection); WriteData( () => BaseList.WriteSelection(copy), () => BaseList.WriteSelection(oldValues)); }
public void InsertSelection(IListSelectionData <T> values) { if (values is null) { throw new ArgumentNullException(nameof(values)); } if (values.Count == 0) { return; } var copy = values.Copy(); WriteData( () => BaseList.InsertSelection(copy), () => BaseList.RemoveSelection(copy.Selection)); OnSizeChanged(EventArgs.Empty); }
public void Paste(IListSelectionData <T> values, bool insert) { if (!CanPaste) { return; } var e = new CancelEventArgs(); OnBeginPaste(e); if (e.Cancel) { return; } if (values is null) { throw new ArgumentNullException(nameof(values)); } if (values.Count == 0) { return; } if (insert) { InsertSelection(values); } else { WriteSelection(values); } OnPasteComplete(EventArgs.Empty); }
public static void WriteSelection <T>( this IList <T> list, IListSelectionData <T> values) { if (list is null) { throw new ArgumentNullException(nameof(list)); } if (values is null) { throw new ArgumentNullException(nameof(values)); } if (values.Selection.MaxIndex >= list.Count) { throw new ArgumentException(); } foreach (var kvp in values) { list[kvp.Key] = kvp.Value; } }
public void WriteSelection(IListSelectionData <byte> values) { BaseList.WriteSelection(values); }
public void InsertSelection(IListSelectionData <byte> values) { BaseList.InsertSelection(values); }