public override void Update(ITimeService time) { var controlArray = TreeTraversal.PreOrderVisit(Content).ToArray(); for (int i = 1; i < controlArray.Length; i++) { var control = controlArray[i]; control.Update(time); } }
public UIElement Find(string id) { foreach (UIElement ctl in TreeTraversal.PreOrderVisit(this).Skip(1)) { if (ctl.Name == id) { return(ctl); } } return(null); }
protected override void Dispose(bool disposeManagedResources) { base.Dispose(disposeManagedResources); if (disposeManagedResources) { foreach (UIElement uiElement in TreeTraversal.PreOrderVisit(Content)) { uiElement.Dispose(); } } IsInited = false; }
private void PopulateItems() { if (ItemsSource == null) { return; } if (ItemTemplate.DataType != null && !ReflectionHelper.IsTypeDerived(ItemTemplate.DataType, GetType())) { LogEvent.UserInterface.Warning(string.Format("ItemTemplate '{0}' expects type {1}. Element '{2}' is of type {3}", ItemTemplate.Key, ItemTemplate.DataType.Name, Name, GetType().Name)); return; } int itemCount = 1; foreach (var item in ItemsSource) { UIElement previousElement = this; foreach (UIElement element in TreeTraversal.PreOrderVisit(ItemTemplate.VisualTree)) { UIElement newItem = ToDispose(element.Copy()); if (element.Parent is ContentControl) { ((ContentControl)previousElement).Content = newItem; } else { container.Add(newItem); } newItem.DataContext = item; foreach (var kvp in ItemTemplate.Bindings.Where(kvp => string.Equals(newItem.Name, kvp.Value.TargetElement))) { newItem.SetBinding(kvp.Value, kvp.Key); } newItem.Name = string.Format("{0}{1:D2}", newItem.Name, itemCount++); previousElement = newItem; } } }
private void CreateContainer() { Contract.Requires <InvalidOperationException>(ItemTemplate.VisualTree is Panel, "VisualTree root must be a Panel"); var panel = (Panel)ToDispose(ItemsPanelTemplate.VisualTree.Copy()); if (panel.IsItemsHost) { container = panel; } else { foreach (var child in TreeTraversal.PreOrderVisit(panel)) { var childPanel = child as Panel; if (childPanel != null && childPanel.IsItemsHost) { container = childPanel; break; } } } foreach (var kvp in ItemsPanelTemplate.Bindings) { var target = panel.Find(kvp.Value.TargetElement); if (target != null) { target.DataContext = DataContext; target.SetBinding(kvp.Value, kvp.Key); break; } } if (container == null) { container = panel; } Children.Add(panel); }
protected override TResource GetResource <TResource>(string resourceName) { return(TreeTraversal.PreOrderVisit(Content).First(c => string.Equals(c.Name, resourceName)) as TResource); }
protected override bool ContainsResource(string resourceName) { return(TreeTraversal.PreOrderVisit(Content).Any(c => string.Equals(c.Name, resourceName))); }