void SetTreeDataItem(ItemCollection parent, ThinNeo.SmartContract.Debug.StackItem item) { if (item == null) { TreeViewItem titem = new TreeViewItem(); titem.Header = "<null>"; parent.Add(titem); return; } {//type TreeViewItem titem = new TreeViewItem(); titem.Header = "deftype:" + item.type; parent.Add(titem); } if (item.type != "Array" && item.type != "Struct") { {//value TreeViewItem vitem = new TreeViewItem(); vitem.Header = "value:" + item.strvalue; parent.Add(vitem); } if (item.type == "ByteArray")//asstr { var bt = ThinNeo.Debug.DebugTool.HexString2Bytes(item.strvalue); { var asstr = System.Text.Encoding.UTF8.GetString(bt); TreeViewItem vitem = new TreeViewItem(); vitem.Header = "asStr:" + asstr; parent.Add(vitem); } if (bt.Length <= 8) { System.Numerics.BigInteger num = new System.Numerics.BigInteger(bt); TreeViewItem vitem = new TreeViewItem(); vitem.Header = "asNum:" + num.ToString(); parent.Add(vitem); } } } else { {//value TreeViewItem vitem = new TreeViewItem(); vitem.Header = "subitems:" + item.subItems.Count; parent.Add(vitem); vitem.IsExpanded = true; for (var i = 0; i < item.subItems.Count; i++) { TreeViewItem sitem = new TreeViewItem(); vitem.Items.Add(sitem); sitem.Header = "item(" + i + ")"; sitem.IsExpanded = true; SetTreeDataItem(sitem.Items, item.subItems[i]); } } } }
void SetTreeData(ThinNeo.SmartContract.Debug.StackItem item) { treeData.Items.Clear(); SetTreeDataItem(treeData.Items, item); }