private static List<Type> GetViewTypes(MemberData memberData)
{
List<Type> viewTypeList = new List<Type>();
var memberInfo = memberData.Member;
if (memberInfo != null)
{
var cellViewAttributes = memberInfo.GetCustomAttributes<CellViewAttribute>();
if (cellViewAttributes.Length > 0)
{
viewTypeList = (from attribute in cellViewAttributes select attribute.ViewType).ToList();
var viewAttributesList = cellViewAttributes.ToList();
viewAttributesList.ForEach((attribute) =>
{
var sizeable = attribute as ISizeable;
if (sizeable != null)
{
memberData.RowHeight = sizeable.GetRowHeight();
}
});
}
var cellViewTemplates = memberInfo.GetCustomAttributes<Attribute>().Where(attribute=> typeof(CellViewTemplate).IsAssignableFrom(attribute.GetType())).Cast<CellViewTemplate>().ToList();
if (cellViewTemplates.Count > 0)
{
cellViewTemplates.ForEach(attribute=>viewTypeList.Add(attribute.CellViewType));
}
}
if (viewTypeList.Count == 0)
return null;
return viewTypeList;
}