WPF と c# を使用して Infragistics の最新の XamDataChart をテストしています。折れ線グラフにプロットされたデータ ポイント間の線の色を変更する方法を知っている人はいますか?
また、プロットされたポイントの一部にのみマーカーを配置したいと思います。MarkerType=”None” を使用してシリーズ全体のマーカーのオンとオフを切り替えることができますが、プロットに使用されるコレクションの一部としても利用可能なブール値へのデータ バインディングに基づいて、特定のデータ ポイントだけをマークする方法が見つかりませんでした。 .
これはかなり基本的なもののように思えますが、これまでのところ私は途方に暮れています。
アイデアや提案は大歓迎です。
これを機能させるために考えられることはすべて試しましたが、喜びはありません。
以下のコードでは、問題の本質を失うことなく、できるだけ単純化しようとしました。これはかなり単純に見え、MarkerType データ バインディングを除いてすべてが機能します。エラーのタイプを bool から MarkerType に変更しました。AbcDataSources コレクションに AbcData オブジェクトの大規模なコレクションがあります。データ コンテキストはグリッドに設定されます。LineSeries はデータを正常に取得し、チャートに線が表示されます。
奇妙なことに、すべてのエラー プロパティを enum 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>