コード例 #1
0
        /// <summary>
        /// Resolves first parent which is IBoundedContainer and returns its DataSource
        /// </summary>
        /// <param name="aAdaptor">
        /// Control adaptor to use <see cref="ControlAdaptor"/>
        /// </param>
        /// <param name="aControl">
        /// Control which parent is to be resolved <see cref="System.Object"/>
        /// </param>
        /// <returns>
        /// Object of parent controls datasource or null <see cref="System.Object"/>
        /// </returns>
        public static object ResolveBoundaryDataSourceFromParent(ControlAdaptor aAdaptor, object aControl)
        {
            if (aControl == null)
            {
                return(null);
            }
            object ctrl = aAdaptor.GetParentOfControl(aControl);

            while (ctrl != null)
            {
                if (ctrl is IBoundedContainer)
                {
                    if ((ctrl as IBoundedContainer).InheritedBoundaryDataSource == false)
                    {
                        return((ctrl as IBoundedContainer).BoundaryDataSource);
                    }
                }
                ctrl = aAdaptor.GetParentOfControl(ctrl);
            }
            return(null);
        }
コード例 #2
0
        /// <summary>
        /// Resolves DaraSource from parent control
        /// </summary>
        /// <param name="aAdaptor">
        /// Control adaptor to use <see cref="ControlAdaptor"/>
        /// </param>
        /// <param name="aControl">
        /// Control which parent is to be resolved <see cref="System.Object"/>
        /// </param>
        /// <returns>
        /// Object of parent controls datasource adaptor or null <see cref="System.Object"/>
        /// </returns>
        public static object ResolveDataSourceFromParent(ControlAdaptor aAdaptor, object aControl)
        {
            if ((aControl == null) || (aAdaptor == null))
            {
                return(null);
            }
            object ctrl = aAdaptor.GetParentOfControl(aControl);

            if (aAdaptor.ControlIsWindow(aControl) == true)
            {
                return(null);
            }

            while (ctrl != null)
            {
                if (ctrl is IAdaptableContainer)
                {
                    return((ctrl as IAdaptableContainer).Adaptor.Adaptor);
                }
                ctrl = aAdaptor.GetParentOfControl(ctrl);
            }
            return(null);
        }