Back to Devexpress

CustomDashboardItem<T>.Metadata Property

dashboard-devexpress-dot-dashboardcommon-dot-customdashboarditem-1-3883c8b6.md

latest3.9 KB
Original Source

CustomDashboardItem<T>.Metadata Property

Gets custom item metadata.

Namespace : DevExpress.DashboardCommon

Assembly : DevExpress.Dashboard.v25.2.Core.dll

NuGet Package : DevExpress.Dashboard.Core

Declaration

csharp
public T Metadata { get; }
vb
Public ReadOnly Property Metadata As T

Property Value

TypeDescription
T

A CustomItemMetadata class descendant.

|

Remarks

Metadata defines the data item structure in a custom dashboard item. The Metadata property gets custom item metadata and allows you to change it. You can get the existing data items from metadata properties and add new data items. The DataItem.UniqueId property allows you to get data items from metadata.

The following code snippet shows how to get data items from CustomFunnelMetadata and use them to bind flat data to a Funnel chart series:

csharp
using System.Windows.Forms;
using DevExpress.DashboardCommon;
using DevExpress.DashboardWin;
using DevExpress.XtraCharts;

public class CustomFunnelControlProvider : CustomControlProviderBase {
  CustomDashboardItem<CustomFunnelMetadata> dashboardItem;
  //...
  protected override void UpdateControl(CustomItemData customItemData){
      chart.Series.Clear();
      if(dashboardItem.Metadata.Value != null && dashboardItem.Metadata.Arguments.Count > 0) {
          Series series = new Series("A Funnel Series", ViewType.Funnel);
          flatData = customItemData.GetFlatData(new DashboardFlatDataSourceOptions() {
             AddColoringColumns = true });
          series.DataSource = flatData;
          series.ValueDataMembers.AddRange(dashboardItem.Metadata.Value.UniqueId);
          series.ArgumentDataMember = dashboardItem.Metadata.Arguments.Last().UniqueId;
          series.ColorDataMember = flatData.GetColoringColumn(dashboardItem.Metadata.Value.UniqueId).Name;
          chart.Series.Add(series);
      }
  }
}
vb
Imports System.Windows.Forms
Imports DevExpress.DashboardCommon
Imports DevExpress.DashboardWin
Imports DevExpress.XtraCharts

Public Class CustomFunnelControlProvider
    Inherits CustomControlProviderBase
  Private dashboardItem As CustomDashboardItem(Of CustomFunnelMetadata)
  '...
  Protected Overrides Sub UpdateControl(ByVal customItemData As CustomItemData)
      chart.Series.Clear()
      If dashboardItem.Metadata.Value IsNot Nothing AndAlso dashboardItem.Metadata.Arguments.Count > 0 Then
          Dim series As New Series("A Funnel Series", ViewType.Funnel)
          flatData = customItemData.GetFlatData(New DashboardFlatDataSourceOptions() With {.AddColoringColumns = True})
          series.DataSource = flatData
          series.ValueDataMembers.AddRange(dashboardItem.Metadata.Value.UniqueId)
          series.ArgumentDataMember = dashboardItem.Metadata.Arguments.Last().UniqueId
          series.ColorDataMember = flatData.GetColoringColumn(dashboardItem.Metadata.Value.UniqueId).Name
          chart.Series.Add(series)
      End If
  End Sub
End Class

See Also

CustomDashboardItem<T> Class

CustomDashboardItem<T> Members

DevExpress.DashboardCommon Namespace