/// <summary> /// /// </summary> /// <param name="property"></param> /// <param name="propValue"></param> /// <param name="parent"></param> public override void BuildChild(PropertyInfo property, object propValue, ITreeItemNode parent) { if (!(propValue is IDictionary dictionary)) { return; } var result = new T(); result.Initialize(new TreeItemNodeInitializeArgs(dictionary)); foreach (var item in dictionary) { var builder = TreeItemTypeBuilderFactory.GetTreeItemTypeBuilder(item); if (builder == null) { continue; } var child = builder.Build(item); result.AddChild(child); } parent?.AddChild(result); }
/// <summary> /// /// </summary> /// <param name="property"></param> /// <param name="propValue"></param> /// <param name="parent"></param> public override void BuildChild(PropertyInfo property, object propValue, ITreeItemNode parent) { var result = new T(); result.Initialize(new TreeItemNodeInitializeArgs(property, propValue, parent)); parent.AddChild(result); }
/// <summary> /// /// </summary> /// <param name="property"></param> /// <param name="propValue"></param> /// <param name="parent"></param> public override void BuildChild(PropertyInfo property, object propValue, ITreeItemNode parent) { var builder = TreeItemTypeBuilderFactory.GetTreeItemTypeBuilder(property.PropertyType); if (builder == null) { return; } var child = builder.Build(propValue); parent.AddChild(child); }
/// <summary> /// /// </summary> /// <param name="property"></param> /// <param name="propValue"></param> /// <param name="parent"></param> public override void BuildChild(PropertyInfo property, object propValue, ITreeItemNode parent) { }
/// <summary> /// /// </summary> /// <param name="property"></param> /// <param name="propValue"></param> /// <param name="parent"></param> public abstract void BuildChild(PropertyInfo property, object propValue, ITreeItemNode parent);
/// <summary> /// /// </summary> /// <param name="node"></param> public void AddChild(ITreeItemNode node) { Childrens.Add((ExceptionTreeItemNode)node); }
/// <summary> /// /// </summary> /// <param name="propertyInfo"></param> /// <param name="value"></param> /// <param name="parentNode"></param> public TreeItemNodeInitializeArgs(PropertyInfo propertyInfo, object value, ITreeItemNode parentNode) { PropertyInfo = propertyInfo; Value = value; ParentNode = parentNode; }