/// <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); }
/// <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); }