Ejemplo n.º 1
0
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object objValue)
        {
            if (provider != null && context != null)
            {
                var serviceProvider = context.Container as IServiceProvider;
                if (serviceProvider == null)
                {
                    var componentSite = (context.Instance as IComponent)?.Site;
                    if (componentSite == null)
                    {
                        return(objValue);
                    }
                    serviceProvider = componentSite;
                }

                var rootReport = (DesignerExtensions.GetService <IDesignerHost>(serviceProvider).RootComponent as XRControl)?.RootReport;
                if (rootReport == null)
                {
                    return(objValue);
                }

                var dataContainer = context.Instance as IDataContainer;
                if (dataContainer == null)
                {
                    return(objValue);
                }

                var form = new FilterStringEditorForm(provider, dataContainer.GetEffectiveDataSource(), dataContainer.DataMember, rootReport.Parameters, rootReport)
                {
                    FilterString = (string)objValue
                };
                if (DialogRunner.ShowDialog(form, provider) != DialogResult.Cancel)
                {
                    objValue = form.FilterString;
                }
            }
            return(objValue);
        }