/// <summary>
        /// Initializes a new instance of the <see cref="FieldPathPropertyDefinition"/> class.
        /// </summary>
        /// <param name="dataFilter">
        /// The data filter.
        /// </param>
        /// <param name="memberDefinition">
        /// The member definition.
        /// </param>
        public FieldPathPropertyDefinition(RadDataFilter dataFilter, IFilterMemberDefinition memberDefinition)
        {
            if (dataFilter == null)
                throw new ArgumentNullException("dataFilter");

            if (memberDefinition == null)
                throw new ArgumentNullException("memberDefinition");

            _dataFilter = dataFilter;
            _memberDefinition = memberDefinition;
            PropertyName = memberDefinition.MemberName;
            PropertyType = memberDefinition.MemberType;
            DisplayName = memberDefinition.DisplayName;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="FieldPathPropertyDefinition"/> class.
        /// </summary>
        /// <param name="parentProperty">
        /// The parent property.
        /// </param>
        /// <param name="memberDefinition">
        /// The member definition.
        /// </param>
        public FieldPathPropertyDefinition(FieldPathPropertyDefinition parentProperty, IFilterMemberDefinition memberDefinition)
        {
            if (parentProperty == null)
                throw new ArgumentNullException("parentProperty");

            if (memberDefinition == null)
                throw new ArgumentNullException("memberDefinition");

            _parentProperty = parentProperty;
            _dataFilter = parentProperty.DataFilter;
            _memberDefinition = memberDefinition;

            var propertyPath = memberDefinition.MemberName;
            var property = ParentProperty;
            while (property != null)
            {
                propertyPath = property.SystemName + Constants.FilterDescriptorMemberSeparator + propertyPath;
                property = property.ParentProperty;
            }

            PropertyName = propertyPath;
            PropertyType = memberDefinition.MemberType;
            DisplayName = memberDefinition.DisplayName;
        }