DashboardObjectDataSource Class
An object data source that provides data for the dashboard.
Namespace: DevExpress.DashboardCommon
Assembly: DevExpress.Dashboard.v19.2.Core.dll
Declaration
[DataAccessMetadata("All", SupportedProcessingModes = "Simple", EnableBindingToObjectDataSource = true)]
public class DashboardObjectDataSource :
ObjectDataSource,
IDashboardDataSource,
IDashboardComponent,
IComponent,
IDisposable,
ISupportInitialize,
ISupportPrefix,
IDashboardDataSourceInternal,
IExternalSchemaConsumer,
IFederationDataProvider,
IFederationDataSchemaProvider
Remarks
To provide data for the DashboardObjectDataSource, assign the type of the required class to the DataSource property and set the DataMember property specifying the data member used to obtain the required data.
Important
Starting with 19.2, do not call the Fill method in your code. Instead, handle the DataLoading or AsyncDataLoading events to supply data. The DashboardObjectDataSource is filled automatically.
Handle the following events to supply the dashboard with actual data at runtime:
Platform | Event |
---|---|
ASP.NET | ASPxDashboard.DataLoading, DashboardConfigurator.DataLoading |
WinForms | DashboardDesigner.DataLoading, DashboardViewer.DataLoading |
WinForms, in Async Mode | DashboardDesigner.AsyncDataLoading, DashboardViewer.AsyncDataLoading |
WPF | DashboardControl.AsyncDataLoading |
Any platform, not in Async Mode | Dashboard.DataLoading |
An object that provides data should implement the IEnumerable or IListSource interface.
Tip
You can create a custom fill service with the IObjectDataSourceCustomFillService interface, get access to the DashboardObjectDataSource configuration and use configuration parameters to modify the current data query.
Example
The following example demonstrates how to bind a dashboard to a List object.
The quantity values are provided at runtime. The dashboard data source is added to the Dashboard.DataSources collection on the first load.
Click the Reload Data button to call the DashboardViewer.ReloadData method. It raises the DashboardViewer.DataLoading event and supplies the dashboard with updated data.
Note
The complete sample project How to Bind a Dashboard to a List of Objects is available in the DevExpress Examples repository.
using System;
using System.Collections.Generic;
using System.Threading;
namespace Dashboard_BindingToList {
public class Data {
public string SalesPerson { get; set; }
public int Quantity { get; set; }
public static List<Data> CreateData() {
List<Data> data = new List<Data>();
string[] salesPersons = { "Andrew Fuller", "Michael Suyama", "Robert King", "Nancy Davolio",
"Margaret Peacock", "Laura Callahan", "Steven Buchanan", "Janet Leverling" };
for (int i = 0; i < 100; i++) {
Data record = new Data();
int seed = (int)DateTime.Now.Ticks & 0x0000FFFF;
record.SalesPerson = salesPersons[new Random(seed).Next(0, salesPersons.Length)];
record.Quantity = new Random(seed).Next(0, 100);
data.Add(record);
Thread.Sleep(3);
}
return data;
}
}
}