wpf-devexpress-dot-xpf-dot-charts-dot-rangecontrolclient-aad26c89.md
Shows time-span data within a range control’s viewport.
Namespace : DevExpress.Xpf.Charts.RangeControlClient
Assembly : DevExpress.Xpf.Charts.v25.2.dll
NuGet Package : DevExpress.Wpf.Charts
[DXLicenseWpf]
public class TimeSpanChartRangeControlClient :
ChartRangeControlClient
<DXLicenseWpf>
Public Class TimeSpanChartRangeControlClient
Inherits ChartRangeControlClient
To display time-span data within a RangeControl, you need to assign a DateTimeChartRangeControlClient instance to the RangeControl.Client property.
This example demonstrates how to use the time-span chart client for a range control to display a chart with time-span data within the range control’s viewport.
In this example, a time-span chart range control client is bound to a System.Collections.Generic.List containing DataSourceItem objects.
Each DataSourceItem object contains Argument and Value properties, to which a time-span chart range control client is bound via its ChartRangeControlClient.ArgumentDataMember and ChartRangeControlClient.ValueDataMember properties.
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TimeSpanChartRangeControlClient"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:Custom="http://schemas.devexpress.com/winfx/2008/xaml/charts/rangecontrolclient"
x:Class="TimeSpanChartRangeControlClient.MainWindow"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<dxe:RangeControl>
<Custom:TimeSpanChartRangeControlClient ArgumentDataMember="Argument"
ValueDataMember="Value"
ItemsSource="{Binding}"
GridAlignment="Hour"
GridSpacing="8"
SnapAlignment="Hour">
<Custom:TimeSpanChartRangeControlClient.View>
<Custom:RangeControlClientLineView ShowMarkers="True"
MarkerSize="8"/>
</Custom:TimeSpanChartRangeControlClient.View>
</Custom:TimeSpanChartRangeControlClient>
</dxe:RangeControl>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Windows;
namespace TimeSpanChartRangeControlClient {
public class DataSourceItem {
public object Argument { get; set; }
public object Value { get; set; }
}
public partial class MainWindow : Window {
const int dataCount = 100;
List<DataSourceItem> data = new List<DataSourceItem>();
List<DataSourceItem> GenerateDateTimeData() {
List<DataSourceItem> data = new List<DataSourceItem>();
Random rand = new Random();
double value = 0;
for (int i = 0; i < dataCount; i++) {
value += (rand.NextDouble() - 0.5);
data.Add(new DataSourceItem() { Argument = TimeSpan.FromMinutes(i * 30),
Value = Math.Abs(value + Math.Sin(i * 0.6)) });
}
return data;
}
public MainWindow() {
InitializeComponent();
this.DataContext = GenerateDateTimeData();
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Windows
Namespace TimeSpanChartRangeControlClient
Public Class DataSourceItem
Public Property Argument As Object
Public Property Value As Object
End Class
Public Partial Class MainWindow
Inherits Window
Const dataCount As Integer = 100
Private data As List(Of DataSourceItem) = New List(Of DataSourceItem)()
Private Function GenerateDateTimeData() As List(Of DataSourceItem)
Dim data As List(Of DataSourceItem) = New List(Of DataSourceItem)()
Dim rand As Random = New Random()
Dim value As Double = 0
For i As Integer = 0 To dataCount - 1
value += (rand.NextDouble() - 0.5)
data.Add(New DataSourceItem() With {
.Argument = TimeSpan.FromMinutes(i * 30),
.Value = Math.Abs(value + Math.Sin(i * 0.6))
})
Next
Return data
End Function
Public Sub New()
InitializeComponent()
Me.DataContext = GenerateDateTimeData()
End Sub
End Class
End Namespace
Show 12 items
Object DispatcherObject DependencyObject Visual UIElement FrameworkElement Control ChartElementBase ChartElement ChartRangeControlClientBase ChartRangeControlClient TimeSpanChartRangeControlClient
See Also