/// <summary>
 ///   Tries to take the value, cast it to the specified type and return it. If value isn't of expected type, false is returned.
 /// </summary>
 /// <typeparam name="T"> Expected type of value. </typeparam>
 /// <param name="value"> Contains the value if it was casted successful; otherwise the default value of the specified type. </param>
 /// <returns> True if the value could be successful casted; otherwise, false. </returns>
 public bool TryGetValue <T>(out T value)
 {
     return(ValueEditorContext.TryGetValue(this.Value, out value));
 }
 /// <summary>
 ///   Takes the value, tries to cast it to the specified type and returns it.
 /// </summary>
 /// <typeparam name="T"> Expected type of value. </typeparam>
 /// <returns> Value casted to specified type. </returns>
 /// <exception type="InvalidCastException">Thrown if value isn't of expected type.</exception>
 public T GetValue <T>()
 {
     return(ValueEditorContext.GetValue <T>(this.Value));
 }