2017-02-15 18 views
0
using System; 
using System.Windows; 
using System.Collections.Generic; 
using Microsoft.Research.DynamicDataDisplay.DataSources; 
using System.Windows.Threading; 

namespace ClassReferenceStackOverFlow 
{ 

public partial class MainWindow : Window 
{ 
    public ObservableDataSource<StockInfo1> stockData1 = null; 
    public MainWindow() 
    { 
     InitializeComponent(); 

     DateTime time = DateTime.Now; 
     double price = 180.00; // IBM stock price 
     StockInfo1 info = new StockInfo1 { Time = time, Price = price }; 
     stockData1.AppendAsync(Dispatcher, info); 
    } 

    public class StockInfo1 
    { 
     public DateTime Time { get; set; } 
     public double Price { get; set; } 
     public double Range { get; set; } 
    } 
} 
} 

C#/ WPFの新機能です。多くの株式を追跡/チャート化したいと考えています(ここでは例:IBMはStockInfo1として)。醜いStockInfo2、StockInfo3などを作成することなく、どうすればきちんと達成できますか? いくつかのオプションを検索して試していましたが、C#の限られた知識を超えて多くのオプションを試しました。事前に任意の方向/例/コードスニペット用 おかげでコレクションにクラスを追加する

+0

を追加するために、あなたのリスト

に新株を追加する

var info = new ObservableDataSource<StockInfo>>(new StockInfo { Time = DateTime.Now, Price = 20 }) StockList.add(info); 

を使用するか、機能を記述します '一覧あなたの問題を解決する? –

答えて

1

ジャスト株式のメインクラス

public ObservableCollection<Stock> Stocks { get; } = new ObservableCollection<Stock>(); 

このAppendAsyncようなものは必要ありませんで、その後

public class Stock 
{ 
    public string Symbol { get; set; } 
    public ObservableCollection<StockInfo> StockInfos { get; } = new ObservableCollection<StockInfo>(); 
}  

public class StockInfo 
{ 
    public DateTime Time { get; set; } 
    public double Price { get; set; } 
    public double Range { get; set; } 
} 

のクラスを持っている

+0

さらなる明確化:データは取引所(NYSE、CME、NASDAQなど)からのものです。すべての秒/分のリアルタイム、記号(価格、価格、時間)を持つ見積もり。正しいコレクションを探し、そのコレクションに見積もりを追加する必要があります。 Microsoftの動的データ表示ObservableData SourceにはAppendAsync関数があり、安定したストリームとして多くのデータが入ってくると、チャートデータを非同期で追加することができます。現在、私はシンボルを読み取り、コレクション(StockInfo1、StockInfo2、... 20)を識別し、グラフ化するデータポイントを追加します。 –

1

あなたはいらないStockInfo2 リストまたはアレイを使用するだけです

public List<ObservableDataSource<StockInfo>> StockList = new List<ObservableDataSource<StockInfo>>(); 

、新しいStockInfo

public void addStockInfo(Double price,DateTime time){ 
    StockList.add(new ObservableDataSource<StockInfo>>(new StockInfo { 
     Time = time, 
     Price = price 
    }); 
} 
関連する問題