private double GetVisibleChildColumnsWidth(ColumnHierarchyManager.ILocation parentLocation) { var width = 0d; foreach (var columnLocation in this.GetColumnLocations(this.GetChildLocations(parentLocation))) { var column = columnLocation.Column; if (column.Visible) { width += column.ActualWidth; } } return(width); }
private IEnumerable <ColumnHierarchyManager.ILocation> GetChildLocations(ColumnHierarchyManager.ILocation location) { if (location == null) { yield break; } location = location.GetFirstChild(); while (location != null) { yield return(location); location = location.GetNextSibling(); } }