protected virtual internal string GetMergeKey(UIElement item) { var key = UIElementExtension.GetMergeKey(item); if (string.IsNullOrEmpty(key)) { if (item is HeaderedItemsControl) { key = ((HeaderedItemsControl)item).Header as string; } if (string.IsNullOrEmpty(key) && item is FrameworkElement) { key = ((FrameworkElement)item).Name; } if (string.IsNullOrEmpty(key)) { key = Guid.NewGuid().ToString(); } UIElementExtension.SetMergeKey(item, key); } return(key); }
protected void InsertItem(object sourceView, UIElement item, IList target) { RememberMergedItem(sourceView, item); item.DisconnectFromParent(); UIElementExtension.InsertSorted(item, target); }