/// <summary> /// The create field. /// </summary> /// <param name="propertyInfo"> /// The property. /// </param> /// <param name="parentField"> /// The parent field. /// </param> /// <returns> /// The <see cref="ISingleItemViewDisplayListDisplayFieldViewModel"/>. /// </returns> /// <exception cref="ArgumentNullException"> /// The <paramref name="propertyInfo"/> parameter is null. /// </exception> /// <exception cref="ArgumentNullException"> /// The <paramref name="parentField"/> parameter is null. /// </exception> public ISingleItemViewDisplayListDisplayFieldViewModel CreateField(PropertyInfo propertyInfo, ISingleItemViewDisplayListFieldViewModel parentField) { if (propertyInfo == null) throw new ArgumentNullException("propertyInfo"); if (parentField == null) throw new ArgumentNullException("parentField"); var displayField = new SingleItemViewDisplayListDisplayFieldViewModel(parentField) { ViewTemplate = FieldTemplateCreator.CreateTemplate(propertyInfo) }; var displayAttribute = propertyInfo.GetCustomAttribute<DisplayAttribute>(); if (displayAttribute != null) { displayField.Header = displayAttribute.GetName(); displayField.Order = displayAttribute.GetOrder() ?? int.MaxValue; } var displayFieldAttribute = propertyInfo.GetCustomAttribute<ReferenceDisplayFieldAttribute>(); if (displayFieldAttribute != null) { displayField.IsFieldNameHidden = displayFieldAttribute.IsFieldNameHidden; displayField.WidthPercentage = displayFieldAttribute.WidthPercentage / 100.0; } return displayField; }
/// <summary> /// Initializes a new instance of the <see cref="SingleItemViewDisplayListDisplayFieldViewModel"/> class. /// </summary> /// <param name="parentField"> /// The parent field. /// </param> /// <exception cref="ArgumentNullException"> /// The <paramref name="parentField"/> parameter is null. /// </exception> public SingleItemViewDisplayListDisplayFieldViewModel(ISingleItemViewDisplayListFieldViewModel parentField) { if (parentField == null) throw new ArgumentNullException("parentField"); ParentField = parentField; WidthPercentage = 1.0; }