1

需要通过 xamChart 以以下格式显示数据:

time   | v1  | v2  | ... | vn
-------+-----+-----+-   -+-----
t1     |     |     | ... |       
t2     |     |     | ... |  
...    .     .     . ... . 
tm     |     |     | ... |

v1 - vn设计时未知标签在哪里( n也是未知的)。t1 - tm是我想要在 X 轴上的日期时间值。其他单元格包含一些数字。

我需要的是一张像下面这样的图表,但将时间作为 X 轴标签,而不仅仅是索引。

xamChart

这是我使用的代码:

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);
}
4

1 回答 1

0

您可以通过 XamDataChart 使用 CategoryDateTimeAxis 和 DataTemplate 作为标签来完成此操作:

<ig:CategoryDateTimeXAxis 
    x:Name="xmXAxis" 
    DateTimeMemberPath="Label"  
    ItemsSource="{Binding}" 
    Label="{StaticResource XAxisLabelTemplate }">

数据模板:

<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
}
于 2012-09-11T15:39:29.207 回答