/// <summary>
 /// Converts row/column data into a list of sizes.
 /// </summary>
 /// <param name="properties">Contains the info.</param>
 /// <param name="dataName">The name of the property containing the info.</param>
 /// <param name="defaultValue">The default size.</param>
 /// <param name="size">The actual size if a number of items is given rather than a list of sizes.</param>
 /// <returns>List of sizes.</returns>
 private static List<string> GetGridData(IPropertyList properties, string dataName, string defaultValue, string size)
 {
     IList<IProperty> property = properties.Find(dataName);
     List<string> columnList = null;
     if (property != null && property.Count > 0)
     {
         columnList = new List<string>();
         if (property.Count > 1)
         {
             columnList.AddRange(property.Select(item => string.IsNullOrWhiteSpace(item.StringValue) ? defaultValue : item.StringValue));
         }
         else if (property[0].IsInt)
         {
             int fieldCount = property[0].IntValue;
             for (int i = 0; i < fieldCount; i++)
                 columnList.Add(size);
         }
         else
         {
             string[] fieldData = property[0].StringValue.Split('|');
             columnList.AddRange(fieldData.Select(item => string.IsNullOrWhiteSpace(item) ? defaultValue : item));
         }
     }
     return columnList;
 }