/// <summary>
        /// Gets list items for property that implemented as <see cref="IPropertyContainer"/> list.
        /// Example:
        /// <code>
        /// - Source: IPropertyContainer
        ///   - ListProperty: IPropertyContainer
        ///     - ListItem: IPropertyContainer
        ///     - ListItem: IPropertyContainer
        /// </code>
        /// </summary>
        /// <param name="propertyContainer">Source property container.</param>
        /// <param name="listProperty">List property.</param>
        /// <returns>ListItem enumeration.</returns>
        public static IEnumerable <IPropertyContainer> GetListItems(
            this IPropertyContainer propertyContainer,
            IProperty <IPropertyContainer> listProperty)
        {
            IPropertyContainer list = propertyContainer.GetValue(listProperty) ?? PropertyContainer.Empty;

            return(list
                   .Select(pv => pv.ValueUntyped as IPropertyContainer)
                   .Where(container => container != null) !);
        }