/// <summary> /// Gets initializer from string value. /// </summary> public override string GetInitializer(string stringValue) { var elementSizeConverter = new ElementSizeValueConverter(); string[] valueList; valueList = stringValue.Split(',').ToArray(); if (valueList.Length == 1) { return(String.Format(CultureInfo.InvariantCulture, "new ElementMargin({0})", elementSizeConverter.GetInitializer(valueList[0]))); } else if (valueList.Length == 2) { return(String.Format(CultureInfo.InvariantCulture, "new ElementMargin({0}, {1})", elementSizeConverter.GetInitializer(valueList[0]), elementSizeConverter.GetInitializer(valueList[1]))); } else if (valueList.Length == 3) { return(String.Format(CultureInfo.InvariantCulture, "new ElementMargin({0}, {1}, {2})", elementSizeConverter.GetInitializer(valueList[0]), elementSizeConverter.GetInitializer(valueList[1]), elementSizeConverter.GetInitializer(valueList[2]))); } else if (valueList.Length == 4) { return(String.Format(CultureInfo.InvariantCulture, "new ElementMargin({0}, {1}, {2}, {3})", elementSizeConverter.GetInitializer(valueList[0]), elementSizeConverter.GetInitializer(valueList[1]), elementSizeConverter.GetInitializer(valueList[2]), elementSizeConverter.GetInitializer(valueList[3]))); } throw new Exception(String.Format("Improperly formatted string.")); }
/// <summary> /// Gets initializer from string value. /// </summary> public override string GetInitializer(string stringValue) { var floatValueConverter = new FloatValueConverter(); var elementSizeConverter = new ElementSizeValueConverter(); var sb = new StringBuilder(); string[] valueList = stringValue.Split(','); sb.Append("new ColumnDefinitions { "); for (int i = 0; i < valueList.Count(); ++i) { var defStr = valueList[i]; string minMaxStr = string.Empty; if (valueList[i].Contains("[")) { var minMaxList = valueList[i].Split(MinMaxDelimiterChars, StringSplitOptions.RemoveEmptyEntries); defStr = minMaxList[0]; if (minMaxList.Length == 2) { minMaxStr = String.Format(", {0}", floatValueConverter.GetInitializer(minMaxList[1])); } else if (minMaxList.Length == 3) { minMaxStr = String.Format(", {0}, {1}", floatValueConverter.GetInitializer(minMaxList[1]), floatValueConverter.GetInitializer(minMaxList[2])); } else { // improperly formatted string throw new Exception("Improperly formatted ColumnDefinitions string. Supported examples: *,10,50,2* | 100[50-200], 10 | 10%,40%,50% | 100,100[10]"); } } sb.AppendFormat("new ColumnDefinition({0}{1})", elementSizeConverter.GetInitializer(defStr), minMaxStr); if (i < valueList.Count() - 1) { sb.Append(", "); } } sb.Append("}"); return(sb.ToString()); }