Y 軸が の値によって更新されている WPF ツールキットを使用してグラフを作成しようとしていますList()。特定のインデックスを介して値にアクセスしようとしています。List()現在、ではなくのインデックスにバインドすると、int「従属値をプロットするのに適した軸がありません」というメッセージが表示されます。例外。
これが私がこれまでに持っているものですDependentValuePath。インデックスにアクセスするための私の試みに注意してください:
<Charting:LineSeries VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
ItemsSource="{Binding Path=MemoryStats}"
IndependentValuePath="Timestamp"
DependentValuePath="ByteCount[0]"
Title="Data Points">
これはMemoryStats、コード ビハインドで値が構成されているものです。
public List<int> ByteCount { get; set; }
public DateTime Timestamp { get; set; }
XAML の LineSeries にプロパティがDependentValuePath="ByteCount"あり、分離コードで単純な int が使用されている場合、グラフは正常に機能します。
public int ByteCount { get; set; }
public DateTime Timestamp { get; set; }
List()ではなくa のインデックスにバインドするにはどうすればよいintですか?
編集
インデックスに名前を付けることでコード ビハインドからリスト内の特定の値を取得できましたがLineSeries、チャートの作成時に複数の値が動的に生成されます。それぞれを a のインデックスにバインドしたいと思いList<int>()ます。これは1秒ごとに再作成します。
MemoryStatsUI を更新するために使用する完全なメソッドを次に示します。LineSeriesすべてのY 値を単一の ByteCountに更新することで機能してintいるため、現在、すべての行が同じように見えます。
public class MemorySample
{
public static MemorySample Generate(List<int> dataPoints)
{
return new MemorySample
{
ByteCount = dataPoints[0],
Timestamp = DateTime.Now
};
}
public int ByteCount { get; set; }
public DateTime Timestamp { get; set; }
}
LineSeriesもちろん、全部違うものにしたいです。LineSeries各グラフの X 軸をTimeStamp(すべて同じ TimeStampを持つように) したいと思います。さまざまなグラフLineSeriesの Y 軸の値はList()、それぞれの個別のインデックスを使用して整数で更新されます。List()
型コンバーターを実装しようとしますが、いつどこでそれを行うべきか完全にはわかりません。
編集2
思い通りに動くようになりました!折れ線グラフで複数のシリーズを使用することに関して、この SO の質問から多くの助けが見つかりました。
型コンバーターも同様に機能するように見えるので、Shimrod は質問に答えました。しかし、私がやったことは、LineSeries のバインドをItemSourceインデックスに設定し、そのインデックスのコンテンツのデータを取得することでした。
それで、これはどのようにLineSeries見えるかです:
<Charting:LineSeries VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
ItemsSource="{Binding [0]}"
IndependentValuePath="X"
DependentValuePath="Y"
Title="Data Points">
</Charting:LineSeries>
ItemSourceバインディングのインデックスに注意してください。コード ビハインドでDataContextは、コントロールの をに設定しObservableCollectionます。これは、'IList' から継承するオブジェクトを保持し (継承する任意のオブジェクトを使用できます)、そのオブジェクトは、プロパティXとYプロパティを含むオブジェクトを保持します。
public ObservableCollection<InheritsFromIList<ObjectWithXandYProperties>> VariableDataContextIsSetTo { get; set; }
の特定のインデックスにアクセスするObservableCollectionと、リストが返されます。次に、そのリストの項目がグラフに表示されます。