C# Infragistics xamChart数据从数据表中绑定datetime列?
需要通过xamChart以以下格式显示数据:C# Infragistics xamChart数据从数据表中绑定datetime列?,c#,wpf,data-binding,charts,infragistics,C#,Wpf,Data Binding,Charts,Infragistics,需要通过xamChart以以下格式显示数据: time | v1 | v2 | ... | vn -------+-----+-----+- -+----- t1 | | | ... | t2 | | | ... | ... . . . ... . tm | | | ... | 其中,v1-vn是设计时未知的标签(n也是未知的)t1-tm是我想要的X轴上的日期时间值。其
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);
}
foreach(dataTable.Columns.OfType()中的var列。跳过(1))
{
var s=新系列
{
数据源=数据表,
DataMapping=column.ColumnName,
ChartType=ChartType.Line,
Label=column.ColumnName,
};
queriesChart.Series.Add;
}
您可以使用带有标签数据模板的CategoryDateTimeAxis和XamDataChart来完成这一点:
<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
}