private void UpdateBounds() { Rect empty = Rect.Empty; if (this.IsEnabled && this.treeView != null) { DataSchemaItem dataSchemaItem = this.DataContext as DataSchemaItem; DataModelItemBase parent = dataSchemaItem.Parent; int num1 = parent != null?parent.Children.IndexOf((DataModelItemBase)dataSchemaItem) : -1; DataModelItemBase dataModelItemBase = parent == null || num1 >= parent.Children.Count - 1 ? (DataModelItemBase)null : parent.Children[num1 + 1]; int index = this.treeView.Items.IndexOf((object)dataSchemaItem); int num2 = dataModelItemBase != null?this.treeView.Items.IndexOf((object)dataModelItemBase) : this.treeView.Items.Count; FrameworkElement frameworkElement1 = VisualTreeHelper.GetParent((DependencyObject)this) as FrameworkElement; if (dataSchemaItem != null && parent != null && (index >= 0 && num2 >= 0)) { FrameworkElement frameworkElement2 = this.treeView.ItemContainerGenerator.ContainerFromIndex(index) as FrameworkElement; if (frameworkElement2 != null) { Rect rect = frameworkElement2.TransformToVisual((Visual)frameworkElement1).TransformBounds(new Rect(0.0, 0.0, frameworkElement2.ActualWidth, frameworkElement2.ActualHeight)); empty.Union(rect); } if (num2 > index) { FrameworkElement frameworkElement3 = this.treeView.ItemContainerGenerator.ContainerFromIndex(num2 - 1) as FrameworkElement; if (frameworkElement3 != null) { Rect rect = frameworkElement3.TransformToVisual((Visual)frameworkElement1).TransformBounds(new Rect(0.0, 0.0, frameworkElement3.ActualWidth, frameworkElement3.ActualHeight)); empty.Union(rect); } } } } if (empty.IsEmpty) { this.Visibility = Visibility.Collapsed; } else { this.Visibility = Visibility.Visible; this.RenderTransform = (Transform) new TranslateTransform(empty.Left, empty.Top); this.Height = empty.Height; } }
public override int CompareTo(DataModelItemBase treeItem) { return(this.DataSourceHost.DocumentNode.Marker.CompareTo((object)((DataHostItem)treeItem).DataSourceHost.DocumentNode.Marker)); }
private List <DataModelItemBase> GenerateSiblingSchemaItemRange(DataSchemaItem first, DataSchemaItem last, DataModelItemBase parent) { int num1 = parent.Children.IndexOf((DataModelItemBase)last); int num2 = parent.Children.IndexOf((DataModelItemBase)first); int num3 = num2 < num1 ? 1 : -1; List <DataModelItemBase> list = new List <DataModelItemBase>(); int index = num2; while (index != num1 + num3) { DataSchemaItem dataSchemaItem = parent.Children[index] as DataSchemaItem; if (dataSchemaItem != null) { list.Add((DataModelItemBase)dataSchemaItem); } index += num3; } return(list); }
public override int CompareTo(DataModelItemBase treeItem) { DataSchemaItem dataSchemaItem = (DataSchemaItem)treeItem; return(StringLogicalComparer.Instance.Compare(this.PathName, dataSchemaItem.PathName)); }
public override int CompareTo(DataModelItemBase treeItem) { return(this.DisplayName.CompareTo(treeItem.DisplayName)); }