[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]CodeRush Classic
[Collapse]Cross-Platform Core Libraries
 [Expand]DevExpress ORM Tool
 [Expand]DevExpress Data Library
 [Expand]DevExpress Pivot Grid Core Library
 [Expand]Miscellaneous
 [Collapse]API Reference
  [Expand]DevExpress.Data
  [Expand]DevExpress.Data.Browsing
  [Expand]DevExpress.Data.Browsing.Design
  [Expand]DevExpress.Data.Camera
  [Expand]DevExpress.Data.Controls
  [Expand]DevExpress.Data.Controls.ExpressionEditor
  [Expand]DevExpress.Data.Entity
  [Expand]DevExpress.Data.Filtering
  [Expand]DevExpress.Data.Filtering.Exceptions
  [Expand]DevExpress.Data.Filtering.Helpers
  [Expand]DevExpress.Data.Linq
  [Expand]DevExpress.Data.ODataLinq
  [Expand]DevExpress.Data.PivotGrid
  [Expand]DevExpress.Data.PLinq
  [Expand]DevExpress.Data.TreeList
  [Expand]DevExpress.Data.Utils
  [Expand]DevExpress.Data.Utils.ServiceModel
  [Expand]DevExpress.Data.WcfLinq
  [Expand]DevExpress.Data.WizardFramework
  [Expand]DevExpress.Data.XtraReports.DataProviders
  [Expand]DevExpress.Data.XtraReports.Labels
  [Expand]DevExpress.Data.XtraReports.ServiceModel
  [Expand]DevExpress.Data.XtraReports.ServiceModel.DataContracts
  [Expand]DevExpress.Data.XtraReports.Wizard
  [Expand]DevExpress.Data.XtraReports.Wizard.Presenters
  [Expand]DevExpress.Data.XtraReports.Wizard.Views
  [Expand]DevExpress.DataAccess
  [Expand]DevExpress.DataAccess.ConnectionParameters
  [Expand]DevExpress.DataAccess.EntityFramework
  [Expand]DevExpress.DataAccess.Excel
  [Expand]DevExpress.DataAccess.ExpressionEditor
  [Expand]DevExpress.DataAccess.Json
  [Expand]DevExpress.DataAccess.Localization
  [Collapse]DevExpress.DataAccess.ObjectBinding
   [Expand]BeforeFillEventArgs Class
    BeforeFillEventHandler Delegate
   [Expand]HighlightedAssemblyAttribute Class
   [Expand]HighlightedClassAttribute Class
   [Expand]HighlightedMemberAttribute Class
   [Expand]ObjectConstructorInfo Class
   [Collapse]ObjectDataSource Class
     ObjectDataSource Members
    [Expand]ObjectDataSource Constructor
    [Expand]ObjectDataSource Properties
    [Expand]ObjectDataSource Events
    [Expand]ObjectDataSource Methods
   [Expand]ObjectMember Class
   [Expand]Parameter Class
   [Expand]ParameterList Class
   [Expand]ValidationFailedException Class
  [Expand]DevExpress.DataAccess.Sql
  [Expand]DevExpress.DataAccess.Sql.DataApi
  [Expand]DevExpress.DataAccess.UI
  [Expand]DevExpress.DataAccess.UI.Design
  [Expand]DevExpress.DataAccess.UI.EntityFramework
  [Expand]DevExpress.DataAccess.UI.Excel
  [Expand]DevExpress.DataAccess.UI.Localization
  [Expand]DevExpress.DataAccess.UI.ObjectBinding
  [Expand]DevExpress.DataAccess.UI.Sql
  [Expand]DevExpress.DataAccess.UI.Wizard
  [Expand]DevExpress.DataAccess.UI.Wizard.Services
  [Expand]DevExpress.DataAccess.UI.Wizard.Views
  [Expand]DevExpress.DataAccess.Web
  [Expand]DevExpress.DataAccess.Wizard
  [Expand]DevExpress.DataAccess.Wizard.Model
  [Expand]DevExpress.DataAccess.Wizard.Presenters
  [Expand]DevExpress.DataAccess.Wizard.Services
  [Expand]DevExpress.DataAccess.Wizard.Views
  [Expand]DevExpress.Diagram.Core
  [Expand]DevExpress.Diagram.Core.Layout
  [Expand]DevExpress.Diagram.Core.Localization
  [Expand]DevExpress.Diagram.Core.Shapes
  [Expand]DevExpress.Diagram.Core.Themes
  [Expand]DevExpress.DocumentServices.ServiceModel
  [Expand]DevExpress.DocumentServices.ServiceModel.Client
  [Expand]DevExpress.DocumentServices.ServiceModel.DataContracts
  [Expand]DevExpress.DocumentView
  [Expand]DevExpress.Entity.Model
  [Expand]DevExpress.Entity.ProjectModel
  [Expand]DevExpress.Export
  [Expand]DevExpress.Export.Xl
  [Expand]DevExpress.Map
  [Expand]DevExpress.Mvvm
  [Expand]DevExpress.Mvvm.DataAnnotations
  [Expand]DevExpress.Mvvm.DataModel
  [Expand]DevExpress.Mvvm.ModuleInjection
  [Expand]DevExpress.Mvvm.UI
  [Expand]DevExpress.Mvvm.Utils
  [Expand]DevExpress.Mvvm.ViewModel
  [Expand]DevExpress.Office
  [Expand]DevExpress.Office.Crypto
  [Expand]DevExpress.Office.Drawing
  [Expand]DevExpress.Office.Export
  [Expand]DevExpress.Office.Export.Html
  [Expand]DevExpress.Office.Import
  [Expand]DevExpress.Office.Localization
  [Expand]DevExpress.Office.Options
  [Expand]DevExpress.Office.Services
  [Expand]DevExpress.Office.Utils
  [Expand]DevExpress.Pdf
  [Expand]DevExpress.Pdf.Localization
  [Expand]DevExpress.PivotGrid.Printing
  [Expand]DevExpress.Printing
  [Expand]DevExpress.Printing.Core
  [Expand]DevExpress.Printing.ExportHelpers
  [Expand]DevExpress.ReportServer.Printing
  [Expand]DevExpress.ReportServer.Printing.Services
  [Expand]DevExpress.ReportServer.ServiceModel.Client
  [Expand]DevExpress.ReportServer.ServiceModel.ConnectionProviders
  [Expand]DevExpress.ReportServer.ServiceModel.DataContracts
  [Expand]DevExpress.Schedule
  [Expand]DevExpress.Services
  [Expand]DevExpress.Sparkline
  [Expand]DevExpress.Spreadsheet
  [Expand]DevExpress.Spreadsheet.Charts
  [Expand]DevExpress.Spreadsheet.Drawings
  [Expand]DevExpress.Spreadsheet.Export
  [Expand]DevExpress.Spreadsheet.Formulas
  [Expand]DevExpress.Spreadsheet.Functions
  [Expand]DevExpress.TreeMap
  [Expand]DevExpress.Utils
  [Expand]DevExpress.Utils.Commands
  [Expand]DevExpress.Utils.Controls
  [Expand]DevExpress.Utils.Filtering.Internal
  [Expand]DevExpress.Utils.IoC
  [Expand]DevExpress.Utils.Localization
  [Expand]DevExpress.Utils.Serializing.Helpers
  [Expand]DevExpress.WebUtils
  [Expand]DevExpress.Xpf.Core
  [Expand]DevExpress.Xpf.Printing
  [Expand]DevExpress.Xpo
  [Expand]DevExpress.Xpo.DB
  [Expand]DevExpress.Xpo.DB.Exceptions
  [Expand]DevExpress.Xpo.DB.Helpers
  [Expand]DevExpress.Xpo.Exceptions
  [Expand]DevExpress.Xpo.Helpers
  [Expand]DevExpress.Xpo.Metadata
  [Expand]DevExpress.XtraCharts
  [Expand]DevExpress.XtraCharts.Localization
  [Expand]DevExpress.XtraCharts.Native
  [Expand]DevExpress.XtraCharts.Printing
  [Expand]DevExpress.XtraEditors
  [Expand]DevExpress.XtraEditors.DXErrorProvider
  [Expand]DevExpress.XtraExport.Csv
  [Expand]DevExpress.XtraGauges.Base
  [Expand]DevExpress.XtraGauges.Core
  [Expand]DevExpress.XtraGauges.Core.Base
  [Expand]DevExpress.XtraGauges.Core.Drawing
  [Expand]DevExpress.XtraGauges.Core.Localization
  [Expand]DevExpress.XtraGauges.Core.Model
  [Expand]DevExpress.XtraGauges.Core.Primitive
  [Expand]DevExpress.XtraGrid
  [Expand]DevExpress.XtraPivotGrid
  [Expand]DevExpress.XtraPivotGrid.Customization
  [Expand]DevExpress.XtraPivotGrid.Data
  [Expand]DevExpress.XtraPivotGrid.Localization
  [Expand]DevExpress.XtraPivotGrid.Selection
  [Expand]DevExpress.XtraPrinting
  [Expand]DevExpress.XtraPrinting.BarCode
  [Expand]DevExpress.XtraPrinting.Caching
  [Expand]DevExpress.XtraPrinting.DataNodes
  [Expand]DevExpress.XtraPrinting.Drawing
  [Expand]DevExpress.XtraPrinting.Export
  [Expand]DevExpress.XtraPrinting.Export.Web
  [Expand]DevExpress.XtraPrinting.Localization
  [Expand]DevExpress.XtraPrinting.Native
  [Expand]DevExpress.XtraPrinting.Shape
  [Expand]DevExpress.XtraPrinting.Shape.Native
  [Expand]DevExpress.XtraPrinting.WebClientUIControl.DataContracts
  [Expand]DevExpress.XtraPrinting.XamlExport
  [Expand]DevExpress.XtraPrintingLinks
  [Expand]DevExpress.XtraReports
  [Expand]DevExpress.XtraReports.Design
  [Expand]DevExpress.XtraReports.Parameters
  [Expand]DevExpress.XtraReports.ReportGeneration
  [Expand]DevExpress.XtraReports.UI
  [Expand]DevExpress.XtraRichEdit
  [Expand]DevExpress.XtraRichEdit.API.Layout
  [Expand]DevExpress.XtraRichEdit.API.Native
  [Expand]DevExpress.XtraRichEdit.API.Native.Implementation
  [Expand]DevExpress.XtraRichEdit.Commands
  [Expand]DevExpress.XtraRichEdit.Export
  [Expand]DevExpress.XtraRichEdit.Export.Html
  [Expand]DevExpress.XtraRichEdit.Export.Rtf
  [Expand]DevExpress.XtraRichEdit.Forms
  [Expand]DevExpress.XtraRichEdit.Import
  [Expand]DevExpress.XtraRichEdit.Localization
  [Expand]DevExpress.XtraRichEdit.Services
  [Expand]DevExpress.XtraRichEdit.Utils
  [Expand]DevExpress.XtraScheduler
  [Expand]DevExpress.XtraScheduler.Compatibility
  [Expand]DevExpress.XtraScheduler.Drawing
  [Expand]DevExpress.XtraScheduler.Exchange
  [Expand]DevExpress.XtraScheduler.iCalendar
  [Expand]DevExpress.XtraScheduler.iCalendar.Components
  [Expand]DevExpress.XtraScheduler.Localization
  [Expand]DevExpress.XtraScheduler.Native
  [Expand]DevExpress.XtraScheduler.Outlook
  [Expand]DevExpress.XtraScheduler.Outlook.Interop
  [Expand]DevExpress.XtraScheduler.Reporting
  [Expand]DevExpress.XtraScheduler.Services
  [Expand]DevExpress.XtraScheduler.Services.Implementation
  [Expand]DevExpress.XtraScheduler.Tools
  [Expand]DevExpress.XtraScheduler.UI
  [Expand]DevExpress.XtraScheduler.Xml
  [Expand]DevExpress.XtraSpellChecker
  [Expand]DevExpress.XtraSpreadsheet
  [Expand]DevExpress.XtraSpreadsheet.Export
  [Expand]DevExpress.XtraSpreadsheet.Export.Html
  [Expand]DevExpress.XtraSpreadsheet.Import
  [Expand]DevExpress.XtraSpreadsheet.Localization
  [Expand]DevExpress.XtraSpreadsheet.Services
[Expand]Tools and Utilities
 End-User Documentation

ObjectDataSource Class

Enables binding data-aware controls and components to a runtime-created object or an instance method.

Namespace:DevExpress.DataAccess.ObjectBinding
Assembly:DevExpress.DataAccess.v18.2.dll

Expanded Syntax

Expanded Remarks

ObjectDataSource can be used to supply the following controls/components with data.

Use the ObjectDataSource when your data is provided by an object or there is a method that returns the data as an object, and it is not required to connect to a database to obtain the data.

When such an object cannot be accessed from your application code, you can use the ObjectDataSource to obtain the data. For example, it is possible to launch the Data Source wizard at runtime and use it to select a required assembly (from among those referenced in the project), and within it, a specific type and method without rebuilding your project and writing any code.

An ObjectDataSource can be bound to a public class or public member (property or method) of a public class that returns an object implementing the IEnumerable<T> interface. This member can either be a static, or instance property (method).

The following properties are used to bind the ObjectDataSource to data.

  • DataSource

    It can be assigned a specific object instance or a type.

    Because the Data Source wizard cannot be used for binding to a specific object instance, it is required to assign this instance to the DataSource property in code before calling the Fill method. In the wizard, this scenario corresponds to the "Retrieve the data source schema" option.

    If the DataSource property has been assigned a type, the ObjectDataSource will try to create an instance of this type when calling the Fill method (this will require specifying the constructor parameters, which is explained further in this article). In the wizard, this scenario corresponds to the "Retrieve the actual data" option.

    Note

    If the DataMember property (see below) has been assigned a static member, creating an instance of the corresponding type is not required, nor is specifying the constructor parameters.

  • DataMember

    To bind the ObjectDataSource to an object, leave this property set to null. In the wizard, this scenario corresponds to the following option: "Do not select a member, bind to the entire object".

    To bind the ObjectDataSource to a property or method, assign its name to the DataMember property. When binding to a method, it is also required to specify this method's parameters (as described further in this article).

  • Parameters

    To bind to a method, this collection must contain parameters that are required to call this method and obtain the data. In any other case, leave this collection empty.

  • Constructor

    If it is required that on calling the Fill method, an ObjectDataSource should create an instance of the type specified by its DataSource property, use the Constructor property to specify the required constructor parameters. To assign a constructor without parameters, use the static ObjectConstructorInfo.Default object.

    For a code sample, see the following example online: How to programmatically generate ObjectDataSource and map object data source constructor parameters to report parameters.

    Set this property to null for the ObjectDataSource to never try to create an object instance (if you need to manually create and assign it, or when binding to a static member).

To make a specific assembly, class or member appear in the Data Source wizard, use the following attributes: HighlightedAssemblyAttribute, HighlightedClassAttribute and HighlightedMemberAttribute.

Expanded Inheritance Hierarchy

System.Object
    System.MarshalByRefObject
       System.ComponentModel.Component
          DevExpress.DataAccess.DataComponentBase
             ObjectDataSource

Expanded See Also

Is this topic helpful?​​​​​​​