corelibraries-devexpress-dot-xtracharts-dot-drilldownitem.md
Returns the field name to field value map that specifies the filter parameters that are applied to the Chart’s data source at the detail level that this item defines.
Namespace : DevExpress.XtraCharts
Assembly : DevExpress.XtraCharts.v25.2.dll
NuGet Package : DevExpress.Charts
public ReadOnlyDictionary<string, object> Parameters { get; }
Public ReadOnly Property Parameters As ReadOnlyDictionary(Of String, Object)
| Type | Description |
|---|---|
| ReadOnlyDictionary<String, Object> |
The field name to field value map that specifies the filter parameters that are applied to the Chart’s data source at the detail level that this item defines.
|
The following example demonstrates how to use this mapping to apply several appearance changes to the Chart Control.
chartControl.DrillDownStateChanged += this.OnChartControlDrillDownStateChanged;
chartControl.DrillDownStateChanging += this.OnChartControlDrillDownStateChanging;
private void OnChartControlDrillDownStateChanging(object sender, DrillDownStateChangingEventArgs e) {
if (e.States.Length != 0) {
object categoryValue = null;
if (e.States.Last().Parameters.TryGetValue("Category", out categoryValue)) {
int seriesIndex = chartControl.Series.IndexOf(chartControl.Series[(string)categoryValue]);
int colorIndex = seriesIndex % chartControl.PaletteRepository[chartControl.PaletteName].Count + 1;
chartControl.PaletteBaseColorNumber = colorIndex;
}
if (chartControl.Diagram is XYDiagram diagram) {
diagram.AxisX.Label.Font = new Font("Tahoma", 8.25f, FontStyle.Regular);
}
} else {
chartControl.PaletteBaseColorNumber = 0;
if (chartControl.Diagram is XYDiagram diagram) {
diagram.AxisX.Label.Font = new Font("Tahoma", 8.25f, FontStyle.Underline);
}
}
}
private void OnChartControlDrillDownStateChanged(object sender, DrillDownStateChangedEventArgs e) {
if (!(chartControl.Diagram is XYDiagram diagram)) return;
if (e.States.Length == 0) {
diagram.Rotated = true;
return;
}
diagram.Rotated = IsDrillToSeriesFromHome(e.States);
}
private bool IsDrillToSeriesFromHome(DrillDownItem[] drillDownItems) {
if (drillDownItems.Length != 1) return false;
IReadOnlyDictionary<string, object> drillDownParams = drillDownItems[0].Parameters;
if (drillDownParams.Count != 1) return false;
return drillDownParams.ContainsKey("Category");
}
AddHandler ChartControl.DrillDownStateChanging, AddressOf OnChartControlDrillDownStateChanging
AddHandler ChartControl.DrillDownStateChanged, AddressOf OnChartControlDrillDownStateChanged
Private Sub OnChartControlDrillDownStateChanging(sender As Object, e As DrillDownStateChangingEventArgs)
If (e.States.Length <> 0) Then
Dim categoryValue As Object = Nothing
If (e.States.Last().Parameters.TryGetValue("Category", categoryValue)) Then
Dim seriesIndex = ChartControl.Series.IndexOf(ChartControl.Series(CType(categoryValue, String)))
Dim colorIndex = seriesIndex Mod ChartControl.PaletteRepository(ChartControl.PaletteName).Count + 1
ChartControl.PaletteBaseColorNumber = colorIndex
End If
Dim diagram As XYDiagram = TryCast(chartControl.Diagram, XYDiagram)
If (diagram IsNot Nothing) Then
diagram.AxisX.Label.Font = New Font("Tahoma", 8.25f, FontStyle.Regular);
End If
Else
ChartControl.PaletteBaseColorNumber = 0
Dim diagram As XYDiagram = TryCast(chartControl.Diagram, XYDiagram)
If (diagram IsNot Nothing) Then
diagram.AxisX.Label.Font = New Font("Tahoma", 8.25f, FontStyle.Underline);
End If
End If
End Sub
Private Sub OnChartControlDrillDownStateChanged(sender As Object, e As DrillDownStateChangedEventArgs)
Dim diagram As XYDiagram = TryCast(chartControl.Diagram, XYDiagram)
If (diagram Is Nothing) Then Return
If (e.States.Length = 0) Then
diagram.Rotated = true
Return
End If
diagram.Rotated = IsDrillToSeriesFromHome(e.States)
End Sub
Private Function IsDrillToSeriesFromHome(drillDownItems() As DrillDownItem) As Boolean
If (drillDownItems.Length <> 1) Then Return False
Dim drillDownParams As IReadOnlyDictionary<String, Object>= drillDownItems(0).Parameters
If (drillDownParams.Count <> 1) Then Return False
Return drillDownParams.ContainsKey("Category")
End Function
See Also