コード例 #1
0
        /// <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;
        }