public TreeMapItem(Exception exp, TreeMapItemMode mode = TreeMapItemMode.Exception)
        {
            //
            // Create MessageBlock for Header
            var expType = exp.GetType().ToString();

            Header = new MessageBlock()
            {
                Text = string.Format("{0} {1}: {2}",
                                     mode == TreeMapItemMode.InnerException ? "Inner" : "",
                                     expType.Substring(expType.LastIndexOf('.') + 1),
                                     exp.Message)
            };

            Items.Add(MessageBlock);

            //
            // Create StackTrace
            if (exp.StackTrace != null)
            {
                StackTrace = new StackTraceBlock(exp);
                StackTrace.ExceptionStackFrameSelectedChanged += (s, e) => OnShowCodeMapEventHandler(s, e);
                Items.Add(StackTrace);
            }
            //
            // Create InnerException
            if (exp.InnerException != null)
            {
                InnerException = new TreeMapItem(exp.InnerException, TreeMapItemMode.InnerException);
                InnerException.OnShowCodeMapEventHandler += (s, e) => this.OnShowCodeMapEventHandler(s, e);
                Items.Add(InnerException);
            }
        }
        public TreeMapItem(Exception exp, TreeMapItemMode mode = TreeMapItemMode.Exception)
        {
            //
            // Create MessageBlock for Header
            var expType = exp.GetType().ToString();
            Header = new MessageBlock()
            {
                Text = string.Format("{0} {1}: {2}",
                    mode == TreeMapItemMode.InnerException ? "Inner" : "",
                    expType.Substring(expType.LastIndexOf('.') + 1),
                    exp.Message)
            };

            Items.Add(MessageBlock);

            //
            // Create StackTrace
            if (exp.StackTrace != null)
            {
                StackTrace = new StackTraceBlock(exp);
                StackTrace.ExceptionStackFrameSelectedChanged += (s, e) => OnShowCodeMapEventHandler(s, e);
                Items.Add(StackTrace);
            }
            //
            // Create InnerException
            if (exp.InnerException != null)
            {
                InnerException = new TreeMapItem(exp.InnerException, TreeMapItemMode.InnerException);
                InnerException.OnShowCodeMapEventHandler += (s, e) => this.OnShowCodeMapEventHandler(s, e);
                Items.Add(InnerException);
            }
        }