private BindingPath(string[] firstNodes, string[] secondNodes)
        {
            this.Nodes = new string[firstNodes.Length + secondNodes.Length];
            this._path = "";
            MBStringBuilder mbStringBuilder = new MBStringBuilder();

            mbStringBuilder.Initialize(callerMemberName: ".ctor");
            for (int index = 0; index < firstNodes.Length; ++index)
            {
                this.Nodes[index] = firstNodes[index];
            }
            for (int index = 0; index < secondNodes.Length; ++index)
            {
                this.Nodes[index + firstNodes.Length] = secondNodes[index];
            }
            for (int index = 0; index < this.Nodes.Length; ++index)
            {
                string node = this.Nodes[index];
                mbStringBuilder.Append <string>(node);
                if (index + 1 != this.Nodes.Length)
                {
                    mbStringBuilder.Append('\\');
                }
            }
            this._path = mbStringBuilder.ToStringAndRelease();
        }
        public BindingPath(IEnumerable <string> nodes)
        {
            this.Nodes = nodes.ToArray <string>();
            this._path = "";
            MBStringBuilder mbStringBuilder = new MBStringBuilder();

            mbStringBuilder.Initialize(callerMemberName: ".ctor");
            for (int index = 0; index < this.Nodes.Length; ++index)
            {
                string node = this.Nodes[index];
                mbStringBuilder.Append <string>(node);
                if (index + 1 != this.Nodes.Length)
                {
                    mbStringBuilder.Append('\\');
                }
            }
            this._path = mbStringBuilder.ToStringAndRelease();
        }