| File: XamlNodeVisitor.cs | Web Access |
| Project: src\src\Controls\src\Xaml\Controls.Xaml.csproj (Microsoft.Maui.Controls.Xaml) |
#nullable disable using System; namespace Microsoft.Maui.Controls.Xaml { interface IXamlNodeVisitor { TreeVisitingMode VisitingMode { get; } bool StopOnDataTemplate { get; } bool VisitNodeOnDataTemplate { get; } bool StopOnResourceDictionary { get; } void Visit(ValueNode node, INode parentNode); void Visit(MarkupNode node, INode parentNode); void Visit(ElementNode node, INode parentNode); void Visit(RootNode node, INode parentNode); void Visit(ListNode node, INode parentNode); bool SkipChildren(INode node, INode parentNode); bool IsResourceDictionary(ElementNode node); } enum TreeVisitingMode { TopDown, BottomUp } class XamlNodeVisitor : IXamlNodeVisitor { readonly Action<INode, INode> action; public XamlNodeVisitor(Action<INode, INode> action, TreeVisitingMode visitingMode = TreeVisitingMode.TopDown, bool stopOnDataTemplate = false, bool visitNodeOnDataTemplate = true) { this.action = action; VisitingMode = visitingMode; StopOnDataTemplate = stopOnDataTemplate; VisitNodeOnDataTemplate = visitNodeOnDataTemplate; } public TreeVisitingMode VisitingMode { get; } public bool StopOnDataTemplate { get; } public bool StopOnResourceDictionary { get; } public bool VisitNodeOnDataTemplate { get; } public void Visit(ValueNode node, INode parentNode) => action(node, parentNode); public void Visit(MarkupNode node, INode parentNode) => action(node, parentNode); public void Visit(ElementNode node, INode parentNode) => action(node, parentNode); public void Visit(RootNode node, INode parentNode) => action(node, parentNode); public void Visit(ListNode node, INode parentNode) => action(node, parentNode); public bool SkipChildren(INode node, INode parentNode) => false; public bool IsResourceDictionary(ElementNode node) => false; } }