private void AnimateItems(RadVirtualizingDataControlItem item1, double offset1, RadVirtualizingDataControlItem item2, double offset2) { this.AnimateScrollOffsetToFocusItem(item2.next == item1 || item2.next == null); if (this.owner.virtualizationStrategy.LayoutOrientation == Orientation.Vertical) { Storyboard.SetTargetProperty(this.da1, "(Canvas.Top)"); Storyboard.SetTarget(this.da1, item1); Storyboard.SetTargetProperty(this.da2, "(Canvas.Top)"); Storyboard.SetTarget(this.da2, item2); } else { Storyboard.SetTargetProperty(this.da1, "(Canvas.Left)"); Storyboard.SetTarget(this.da1, item1); Storyboard.SetTargetProperty(this.da2, "(Canvas.Left)"); Storyboard.SetTarget(this.da2, item2); } this.da1.From = item1.CurrentOffset; this.da1.To = offset1; this.da2.From = item2.CurrentOffset; this.da2.To = offset2; this.sb.Begin(); this.animating = true; }
internal void ShiftTargetItemUp(bool animate) { if (!this.owner.listSource.CanShiftItemIndexUp(this.targetItem.associatedDataItem) || this.animating) { return; } this.swappedItem = this.targetItem.next; double nextItemOffset = this.swappedItem.CurrentOffset + (this.owner.virtualizationStrategy.GetItemLength(this.swappedItem) - this.owner.virtualizationStrategy.GetItemLength(this.targetItem)); RadVirtualizingDataControlItem item1 = this.swappedItem; RadVirtualizingDataControlItem item2 = this.targetItem; if (animate) { this.AnimateItems(item1, this.targetItem.CurrentOffset, item2, nextItemOffset); } else { this.owner.virtualizationStrategy.SetItemOffset(this.swappedItem, this.targetItem.CurrentOffset); this.owner.virtualizationStrategy.SetItemOffset(this.targetItem, nextItemOffset); } this.targetItem.next = this.swappedItem.next; if (this.swappedItem.next != null) { this.swappedItem.next.previous = this.targetItem; } this.swappedItem.next = this.targetItem; if (this.targetItem.previous != null) { this.targetItem.previous.next = this.swappedItem; } this.swappedItem.previous = this.targetItem.previous; this.targetItem.previous = this.swappedItem; int itemIndex = this.owner.realizedItems.IndexOf(this.targetItem); this.owner.realizedItems.RemoveAt(itemIndex); this.owner.realizedItems.Insert(itemIndex + 1, this.targetItem); this.owner.firstItemCache = this.owner.realizedItems[0]; this.owner.lastItemCache = this.owner.realizedItems[this.owner.realizedItems.Count - 1]; this.owner.listSource.ShiftItemIndexUp(this.targetItem.associatedDataItem); this.EvaluateButtonsAvailability(); }
protected override void ClearContainerForItemOverride(RadVirtualizingDataControlItem element, Telerik.Windows.Data.IDataSourceItem item) { base.ClearContainerForItemOverride(element, item); element.ContentTemplate = null; }
protected override void ClearContainerForItemOverride(RadVirtualizingDataControlItem element, Telerik.Windows.Data.IDataSourceItem item) { base.ClearContainerForItemOverride(element, item); element.ContentTemplate = null; }