public ContentControl(SdtElement sdtElement, bool isDescendantOfAContentControl,
                              TemplateDocument templateDocument)
        {
            if (sdtElement.IsContentControl() == false)
            {
                throw new ArgumentException("The provided SdtElement is not a content control", nameof(sdtElement));
            }

            TemplateDocument = templateDocument;

            SdtElement = sdtElement;
            IsDescendantOfAContentControl = isDescendantOfAContentControl;
            Tag  = sdtElement.GetContentControlTag();
            Type = sdtElement.GetContentControlType();
            descendingControls = new List <ContentControl>();
        }