Xamarin(TeeChartとMonotouch)のキャンドルチャートにシリーズデータを埋める方法

StackOverflow https://stackoverflow.com//questions/21043356

  •  21-12-2019
  •  | 
  •  

質問

Xamarin(Android)のティーチャートライブラリを使用しています。「キャンドルチャート」

のデイラミコンバインディングデータに問題があります。

このようなサンプルコード!

protected override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);
    RequestWindowFeature(WindowFeatures.NoTitle);
    SetContentView(Resource.Layout.CandleChart);

    //InitializeComponent();

    chart = new Steema.TeeChart.TChart(this.ApplicationContext);
    chart.Zoom.Style = Steema.TeeChart.ZoomStyles.InChart;
    Steema.TeeChart.Themes.BlackIsBackTheme myTheme = new Steema.TeeChart.Themes.BlackIsBackTheme(chart.Chart);
    myTheme.Apply();
    Type tmp = (Type)Steema.TeeChart.Utils.SeriesTypesOf[12];
    Steema.TeeChart.Styles.Series series;
    series = chart.Series.Add(tmp);

    series.FillSampleValues();  /* Here i want to fill series with my data listed bellow */

    chart.Aspect.View3D = Needs3D(chart[0]);
    chart.Panel.Transparent = true;

    SetContentView(chart);
}
.

今すぐシリーズデータを手動で追加したい

のようなもの:

CurrentItem.Data.Close

CurrentIm.Data.Open

CurrentItem.Data.High

CurrentItem.Data.low

CurrentItem.Time

など、PLZは私をこれを達成するのを助けます。

おかげで、事前に

==========================================================================================================================================================================================================================================================」である===========================

私のコードはBellow

    private void LoadChart(GraphOutput resGraph)
    {
        DataSet_Obj.Tables.Add("CandleTable");
        DataSet_Obj.Tables["CandleTable"].Columns.Add(new DataColumn("Date", System.Type.GetType("System.DateTime")));
        DataSet_Obj.Tables["CandleTable"].Columns.Add(new DataColumn("Open", System.Type.GetType("System.Double")));
        DataSet_Obj.Tables["CandleTable"].Columns.Add(new DataColumn("Close", System.Type.GetType("System.Double")));
        DataSet_Obj.Tables["CandleTable"].Columns.Add(new DataColumn("High", System.Type.GetType("System.Double")));
        DataSet_Obj.Tables["CandleTable"].Columns.Add(new DataColumn("Low", System.Type.GetType("System.Double"))); 

        for (int i = 0; i < resGraph.graphSymbol[0].CandleSticks.Length; i++)
        {
            DataRow_Obj = DataSet_Obj.Tables["CandleTable"].NewRow();
            DataRow_Obj["Date"] = resGraph.graphSymbol[0].CandleSticks[i].CandleTime;        //DateTime 
            DataRow_Obj["Low"] = resGraph.graphSymbol[0].CandleSticks[i].CandleData.Low;     //Float
            DataRow_Obj["Close"] = resGraph.graphSymbol[0].CandleSticks[i].CandleData.Close; //Float
            DataRow_Obj["Open"] = resGraph.graphSymbol[0].CandleSticks[i].CandleData.Open;   //Float
            DataRow_Obj["High"] = resGraph.graphSymbol[0].CandleSticks[i].CandleData.High;   //Float
            DataSet_Obj.Tables["CandleTable"].Rows.Add(DataRow_Obj);
            DataRow_Obj = null;
        }

        Tag_Serie_Candle = new Steema.TeeChart.Styles.Candle ();
        chart.Series.Add(Tag_Serie_Candle);
        chart.Aspect.View3D = Needs3D(chart[0]);
        chart.Panel.Transparent = true;

        try
        {
            Tag_Serie_Candle.DataSource = DataSet_Obj.Tables["CandleTable"];   /* here I got Error Like: "Cannot bind to non-supported datasource: CandleTable" */
            Tag_Serie_Candle.OpenValues.DataMember = DataSet_Obj.Tables["CandleTable"].Columns["Open"].ToString();
            Tag_Serie_Candle.CloseValues.DataMember = DataSet_Obj.Tables["CandleTable"].Columns["Close"].ToString();
            Tag_Serie_Candle.DateValues.DataMember = DataSet_Obj.Tables["CandleTable"].Columns["Date"].ToString();
            Tag_Serie_Candle.DateValues.DateTime = true;
            Tag_Serie_Candle.HighValues.DataMember = DataSet_Obj.Tables["CandleTable"].Columns["High"].ToString();
            Tag_Serie_Candle.LowValues.DataMember = DataSet_Obj.Tables["CandleTable"].Columns["Low"].ToString();
            Tag_Serie_Candle.LabelMember = "Candle Chart";
            Tag_Serie_Candle.CheckDataSource();

            chartpie.AddView(chart, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent));
        }
        catch (Exception exe)
        {
            exe.Message.ToString();
        }
    }
.
役に立ちましたか?

解決

ここでの例のように何かをするべきです:

http://www.techart.net/サポート/ viewtopic.php?f= 4&amp; t= 2978&p= 10547#p10547 http://www.teechart.net/support/viewtopic. .php?f= 4&amp; t= 3291&P= 11691#p11691 > http://www.techart.net/support/viewtopic. .php?f= 4&amp; t= 2741&P= 11681#p11681

現時点では、これは機能していないことを発見しました。私は不具合(> id566 )リストを追加しました(< EM>今すぐ修正された場合は、返信の下部の更新を参照してください。 Steema SoftwareのBugzilla System に登録した場合は、CCリストに参加してステータスについて通知することができます。更新その間に、このコードを使用して dataset から手動で値を読み取ることができます。

Tag_Serie_Candle.DateValues.DateTime = true;

for (int i = 0; i < DataSet_Obj.Tables["CandleTable"].Rows.Count; i++)
{
  DataRow row = DataSet_Obj.Tables["CandleTable"].Rows[i];

  DateTime dt = Convert.ToDateTime(row["Date"]);
  Double open = Convert.ToDouble(row["Open"]);
  Double high = Convert.ToDouble(row["High"]);
  Double low = Convert.ToDouble(row["Low"]);
  Double close = Convert.ToDouble(row["Close"]);

  Tag_Serie_Candle.Add(dt, open, high, low, close);
}
.

アップデート: 2014年2月11日現在、 < / a>が修正されました。解決策のテストに興味がある人は誰でも教えてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top