示例#1
0
        protected internal override void PerformBind(ReportControl obj)
        {
            if (obj == null)
            {
                throw new ArgumentNullException(nameof(obj));
            }

            var source = this.DataSource;

            if (source == null)
            {
                var newSource = DataBindingContext.Peek();
                source = newSource as DataSourceBrowser;
                if (source == null)
                {
                    source = new ObjectDataSourceBrowser(newSource);
                }
            }

            object value      = source.GetValue(this.Expression);
            var    objectType = obj.GetType();
            var    setter     = GetWriter(objectType);

            setter(obj, this.PropertyName, value);
        }