我正在使用 WPF 和 c# 测试来自 Infragistics 的最新 XamDataChart。有谁知道如何更改折线图上绘制的数据点之间的线条颜色?
我还想仅在某些绘制点上放置标记。我可以使用 MarkerType=”None” 打开和关闭整个系列的标记,但还没有找到一种方法来标记基于数据绑定到布尔值的某些数据点,该布尔值也可作为用于绘图的集合的一部分.
这似乎是相当基本的东西,但到目前为止我很茫然。
任何想法或建议将不胜感激。
我已经尝试了我能想到的一切来让它发挥作用,但没有任何乐趣。
在下面的代码中,我试图在不丢失问题本质的情况下尽可能地简化。它看起来相当简单,除了 MarkerType 数据绑定之外一切正常。我已将错误的类型从 bool 更改为 MarkerType。我在 AbcDataSources 集合中有大量 AbcData 对象。数据上下文设置在网格上。LineSeries 的数据正常,图表显示线条。
奇怪的是我已将所有错误属性设置为枚举 MarkerType.Circle 类型,并且在 Xaml 设计器中显示了圆圈。当程序运行时,它们不会。
其他信息:我正在使用 VS2012、.NET 4.5、Infragistics WPF 2012 V2
再次感谢任何有助于理解这一点的帮助。
public class AbcData : BindableBase
{
private Single _dataValue;
private MarkerType _error;
public Single DataValue
{
get { return _dataValue; }
set { SetProperty(ref _dataValue, value); }
}
public MarkerType Error
{
get { return _error; }
set { SetProperty(ref _error, value); }
}
}
public class AbcDataSource
{
private readonly ObservableCollection<AbcData> _rawMDP = new ObservableCollection<AbcData>();
public ObservableCollection<AbcData> RawMDP
{
get { return _rawMDP; }
}
}
<Grid>
<Grid.DataContext>
<Data:AbcDataSource/>
</Grid.DataContext>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="16" />
</Grid.RowDefinitions>
<ig:XamDataChart x:Name="RTChart" Grid.Row="0" HorizontalZoomable="True" WindowScaleHorizontal="0.25"
WindowPositionHorizontal="1" HorizontalZoombarVisibility="Visible" VerticalZoomable="True"
VerticalZoombarVisibility="Visible" PlotAreaBackground="Black" CrosshairVisibility="Visible" Background="Black">
<ig:XamDataChart.Axes>
<ig:NumericYAxis x:Name="YAxis" Interval="1" Label="{}{:n2}" >
<ig:NumericYAxis.LabelSettings>
<ig:AxisLabelSettings Location="OutsideRight" Foreground="White" FontSize="10"
Extent="45" />
</ig:NumericYAxis.LabelSettings>
</ig:NumericYAxis>
<ig:CategoryXAxis x:Name="XAxis" Label="{}{XDateTime:HH:mm}" ItemsSource="{Binding RawMDP}" >
<ig:CategoryXAxis.LabelSettings>
<ig:AxisLabelSettings Foreground="White" FontSize="10" />
</ig:CategoryXAxis.LabelSettings>
</ig:CategoryXAxis>
</ig:XamDataChart.Axes>
<ig:XamDataChart.Series>
<ig:LineSeries x:Name="DataValue"
MarkerType="{Binding RawMDP/Error}"
XAxis="{Binding ElementName=XAxis}"
YAxis="{Binding ElementName=YAxis}"
ItemsSource="{Binding Path=RawMDP}"
ValueMemberPath="DataValue" />
</ig:XamDataChart.Series>
</ig:XamDataChart>
</Grid>