需要通过xamChart以下列格式显示数据:
time | v1 | v2 | ... | vn
-------+-----+-----+- -+-----
t1 | | | ... |
t2 | | | ... |
... . . . ... .
tm | | | ... |
其中v1 - vn
是设计时未知标签( n 也是未知的)。 t1 - tm
是我想要在X轴上的日期时间值。其他单元格包含一些数字。
我需要的是一张如下图所示的图表,但时间为X轴标签,而不仅仅是索引。
这是我使用的代码:
foreach (var column in dataTable.Columns.OfType<DataColumn>().Skip(1))
{
var s = new Series
{
DataSource = dataTable,
DataMapping = column.ColumnName,
ChartType = ChartType.Line,
Label = column.ColumnName,
};
queriesChart.Series.Add(s);
}
答案 0 :(得分:0)
您可以使用带有DataTemplate的CategoryDateTimeAxis为XamDataChart完成此操作:
<ig:CategoryDateTimeXAxis
x:Name="xmXAxis"
DateTimeMemberPath="Label"
ItemsSource="{Binding}"
Label="{StaticResource XAxisLabelTemplate }">
的DataTemplate:
<DataTemplate x:Key="XAxisLabelTemplate">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Item.Date, Converter={StaticResource igStringFormatConverter}, ConverterParameter=MM/dd/yy}"
TextAlignment="Center" Foreground="#CCCCCC" Height="15" Width="65" Margin="0,4,0,0"/>
<TextBlock Text="{Binding Item, Converter={StaticResource igStringFormatConverter}, ConverterParameter=T}"
TextAlignment="Center" Foreground="#CCCCCC" Height="15" Width="65"/>
</StackPanel>
</DataTemplate>
转换器:
class igStringFormatConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
DateTime dt = (DateTime)value;
string fmtDt = String.Format("{0:" + parameter.ToString() + "}", dt);
return fmtDt;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}