Back to Devexpress

DashboardItemSelectionChangedEventArgs Class

dashboard-devexpress-dot-dashboardwin-51d7ca2a.md

latest12.1 KB
Original Source

DashboardItemSelectionChangedEventArgs Class

Provides data for the DashboardDesigner.DashboardItemSelectionChanged / DashboardViewer.DashboardItemSelectionChanged events.

Namespace : DevExpress.DashboardWin

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

NuGet Package : DevExpress.Win.Dashboard

Declaration

csharp
public class DashboardItemSelectionChangedEventArgs :
    EventArgs
vb
Public Class DashboardItemSelectionChangedEventArgs
    Inherits EventArgs

DashboardItemSelectionChangedEventArgs is the data class for the following events:

Remarks

The DashboardDesigner.DashboardItemSelectionChanged / DashboardViewer.DashboardItemSelectionChanged events are raised after the selection within the dashboard item is changed. The selection can be changed in the following ways.

The DashboardItemVisualInteractivityBaseEventArgs.DashboardItemName property returns the name of the dashboard item for which the event was raised. Use the DashboardItemSelectionChangedEventArgs.CurrentSelection property to obtain the currently selected elements.

Example

This example shows how to add a custom interactivity to a dashboard loaded in the WinForms Dashboard Viewer:

  • A user can select records in the Grid dashboard item to filter data in the external Pivot Grid control.
  • When a user clicks the chart series, the Data Grid control displays the corresponding underlying data.

To accomplish this, handle the following events:

This example operates with the MultiDimensionalData API. For more information on the MultiDimensionalData concept, refer to the Obtaining Underlying and Displayed Data document.

View Example: How to Implement Custom Interactivity in WinForms DashboardViewer

csharp
using DevExpress.DashboardCommon;
using DevExpress.DashboardCommon.ViewerData;
using DevExpress.DashboardWin;
using DevExpress.XtraEditors;
using DevExpress.XtraPivotGrid;
using System.Windows.Forms;

namespace Dashboard_CustomVisualInteractivity
{
    public partial class Form1 : XtraForm {
        public Form1() {
            InitializeComponent();
            dashboardViewer1.DataLoading += dashboardViewer1_DataLoading;
            dashboardViewer1.DashboardItemClick += dashboardViewer1_DashboardItemClick;
            dashboardViewer1.DashboardItemVisualInteractivity += dashboardViewer1_DashboardItemVisualInteractivity;
            dashboardViewer1.DashboardItemSelectionChanged += dashboardViewer1_DashboardItemSelectionChanged;

            salesPersonTableAdapter.Fill(nwindDataSet.SalesPerson);

            dashboardViewer1.LoadDashboard("Data\\Dashboard.xml");
        }

        private void dashboardViewer1_DashboardItemVisualInteractivity(object sender, 
            DashboardItemVisualInteractivityEventArgs e) {
            if (e.DashboardItemName == "gridDashboardItem1") {
                e.SelectionMode = DashboardSelectionMode.Multiple;
                e.SetDefaultSelection(e.Data.GetAxisPoints(DashboardDataAxisNames.DefaultAxis)[0]);
            }
            if (e.DashboardItemName == "chartDashboardItem1") {
                e.TargetAxes.Add(DashboardDataAxisNames.ChartArgumentAxis);
                e.TargetAxes.Add(DashboardDataAxisNames.ChartSeriesAxis);
                e.EnableHighlighting = true;
            }
        }

        private void dashboardViewer1_DashboardItemSelectionChanged(object sender, 
            DashboardItemSelectionChangedEventArgs e) {
            pivotGridControl1.BeginUpdate();
            fieldCategoryName1.FilterValues.FilterType = PivotFilterType.Included;
            fieldCategoryName1.FilterValues.Clear();
            foreach (AxisPointTuple selectedElement in e.CurrentSelection) {
                string category = selectedElement.GetAxisPoint().DimensionValue.Value.ToString();
                fieldCategoryName1.FilterValues.Add(category);
            }
            pivotGridControl1.EndUpdate();
        }

        private void dashboardViewer1_DashboardItemClick(object sender, 
            DashboardItemMouseActionEventArgs e) {
            if (e.DashboardItemName == "chartDashboardItem1" && e.GetAxisPoint() != null) {
                XtraForm form = new XtraForm();
                form.Text = e.GetAxisPoint(DashboardDataAxisNames.ChartArgumentAxis).
                    DimensionValue.Value.ToString() + " - " +
                    e.GetAxisPoint(DashboardDataAxisNames.ChartSeriesAxis).
                    DimensionValue.Value.ToString();
                DataGrid grid = new DataGrid();
                grid.Parent = form; grid.Dock = DockStyle.Fill;
                grid.DataSource = e.GetUnderlyingData();
                form.ShowDialog();
                form.Dispose();
            }
        }

        private void dashboardViewer1_DataLoading(object sender, DataLoadingEventArgs e) {
            if (e.DataSourceComponentName == "dataSource1") {
                e.Data = nwindDataSet.SalesPerson;
            }
        }
    }
}
vb
Imports DevExpress.DashboardCommon
Imports DevExpress.DashboardCommon.ViewerData
Imports DevExpress.DashboardWin
Imports DevExpress.XtraEditors
Imports DevExpress.XtraPivotGrid
Imports System.Windows.Forms

Namespace Dashboard_CustomVisualInteractivity
    Partial Public Class Form1
        Inherits XtraForm

        Public Sub New()
            InitializeComponent()
            AddHandler dashboardViewer1.DataLoading, AddressOf dashboardViewer1_DataLoading
            AddHandler dashboardViewer1.DashboardItemClick, AddressOf dashboardViewer1_DashboardItemClick
            AddHandler dashboardViewer1.DashboardItemVisualInteractivity, AddressOf dashboardViewer1_DashboardItemVisualInteractivity
            AddHandler dashboardViewer1.DashboardItemSelectionChanged, AddressOf dashboardViewer1_DashboardItemSelectionChanged

            salesPersonTableAdapter.Fill(nwindDataSet.SalesPerson)

            dashboardViewer1.LoadDashboard("Data\Dashboard.xml")
        End Sub

        Private Sub dashboardViewer1_DashboardItemVisualInteractivity(ByVal sender As Object, ByVal e As DashboardItemVisualInteractivityEventArgs)
            If e.DashboardItemName = "gridDashboardItem1" Then
                e.SelectionMode = DashboardSelectionMode.Multiple
                e.SetDefaultSelection(e.Data.GetAxisPoints(DashboardDataAxisNames.DefaultAxis)(0))
            End If
            If e.DashboardItemName = "chartDashboardItem1" Then
                e.TargetAxes.Add(DashboardDataAxisNames.ChartArgumentAxis)
                e.TargetAxes.Add(DashboardDataAxisNames.ChartSeriesAxis)
                e.EnableHighlighting = True
            End If
        End Sub

        Private Sub dashboardViewer1_DashboardItemSelectionChanged(ByVal sender As Object, ByVal e As DashboardItemSelectionChangedEventArgs)
            pivotGridControl1.BeginUpdate()
            fieldCategoryName1.FilterValues.FilterType = PivotFilterType.Included
            fieldCategoryName1.FilterValues.Clear()
            For Each selectedElement As AxisPointTuple In e.CurrentSelection
                Dim category As String = selectedElement.GetAxisPoint().DimensionValue.Value.ToString()
                fieldCategoryName1.FilterValues.Add(category)
            Next selectedElement
            pivotGridControl1.EndUpdate()
        End Sub

        Private Sub dashboardViewer1_DashboardItemClick(ByVal sender As Object, ByVal e As DashboardItemMouseActionEventArgs)
            If e.DashboardItemName = "chartDashboardItem1" AndAlso e.GetAxisPoint() IsNot Nothing Then
                Dim form As New XtraForm()
                form.Text = e.GetAxisPoint(DashboardDataAxisNames.ChartArgumentAxis).DimensionValue.Value.ToString() & " - " & e.GetAxisPoint(DashboardDataAxisNames.ChartSeriesAxis).DimensionValue.Value.ToString()
                Dim grid As New DataGrid()
                grid.Parent = form
                grid.Dock = DockStyle.Fill
                grid.DataSource = e.GetUnderlyingData()
                form.ShowDialog()
                form.Dispose()
            End If
        End Sub

        Private Sub dashboardViewer1_DataLoading(ByVal sender As Object, ByVal e As DataLoadingEventArgs)
            If e.DataSourceComponentName = "dataSource1" Then
                e.Data = nwindDataSet.SalesPerson
            End If
        End Sub
    End Class
End Namespace

Inheritance

Object EventArgs DashboardItemSelectionChangedEventArgs

See Also

DashboardItemSelectionChangedEventArgs Members

DevExpress.DashboardWin Namespace