/// <summary>
        /// Retrieves the value and tries to cast it to the type.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public virtual T GetValue <T>() where T : IConvertible
        {
            var value = WrappedElement.GetElementProperty("value");

            try
            {
                return((T)Convert.ChangeType(value,
                                             typeof(T),
                                             CultureInfo.CurrentCulture));
            }
            catch
            {
                return(default);