Xamarin.Forms のドキュメント
クイックスタート:FlexChart へのデータの追加
コントロール > FlexChart > クイックスタート:FlexChart へのデータの追加

このセクションでは、移植可能なアプリまたは共有アプリに FlexChart コントロールを追加し、そこにデータを追加する方法について説明します。C# または XAML で ComponentOne for Xamarin コンポーネントを追加する方法については、「C# によるコンポーネントの追加」または「XAML によるコンポーネントの追加」を参照してください。

このトピックは 3 つの手順で構成されます。

次の図は、上記の手順を実行した後の FlexChart を示しています。

手順 1:FlexChart のデータソースの作成

次のクラスは、FlexChart のデータソースとして機能します。

C#
コードのコピー
public class FlexChartDataSource
{
    private List<Month> appData;

    public List<Month> Data
    {
        get { return appData; }
    }

    public FlexChartDataSource()
    {
        // appData
        appData = new List<Month>();
        var monthNames = "1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月".Split(',');
        var salesData = new[] { 5000, 8500, 7000, 6500, 12000, 14800, 18500, 7500, 6500, 13000, 20000, 9000 };
        var downloadsData = new[] { 6000, 7500, 12000, 5800, 11000, 7000, 16000, 17500, 19500, 13250, 13800, 19000 };
        var expensesData = new[] { 15000, 18000, 15500, 18500, 11000, 16000, 8000, 7500, 6500, 6000, 13500, 5000 };
        for (int i = 0; i < 12; i++)
        {
             Month tempMonth = new Month();
             tempMonth.Name = monthNames[i];
             tempMonth.Sales = salesData[i];
             tempMonth.Downloads = downloadsData[i];
             tempMonth.Expenses = expensesData[i];
             appData.Add(tempMonth);
    
        }
    }
}

public class Month
{
    string _name;
    long _sales, _downloads, _expenses;

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    public long Sales
    {
        get { return _sales; }
        set { _sales = value; }
    }
                        
    public long Downloads
    {
        get { return _downloads; }
        set { _downloads = value; }
    }
    public long Expenses
    {
        get { return _expenses; }
        set { _expenses = value; }
    }
}
先頭に戻る

手順 2:FlexChart コントロールの追加

C# または XAML で FlexChart コントロールを初期化するには、次の手順を実行します。

C# のコード

  1. 新しいクラス(QuickStart.cs など)を Portable または Shared プロジェクトに追加し、以下の参照を含めます。
    C#
    コードのコピー
    using Xamarin.Forms;
    using C1.Xamarin.Forms.Chart;
    
  2. FlexChart コントロールを新しいメソッド GetChartControl() でインスタンス化します
    C#
    コードのコピー
    public static FlexChart GetChartControl()
            {
                FlexChart chart = new FlexChart();
    
                FlexChartDataSource ds = new FlexChartDataSource();
                chart.ItemsSource = ds.Data;
                chart.BindingX = "Name";
    
                ChartSeries series = new ChartSeries();
                series.SeriesName = "販売";
                series.Binding = "Sales";
                series.ChartType = ChartType.Column;
                chart.Series.Add(series);
    
                return chart;
            }
    

XAML のコード

  1. 新しい Content Page (QuickStart.xaml など)を Portable または Shared プロジェクトに追加し、<ContentPage> タグを変更して、以下のように参照を含めます。
    XAML
    コードのコピー
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="Test_XAML.QuickStart"
    xmlns:c1="clr-namespace:C1.Xamarin.Forms.Chart;assembly=C1.Xamarin.Forms.Chart">
    
  2. FlexChart コントロールを初期化します。それには、コントロールの <ContentPage></ContentPage> タグ間の <StackLayout></StackLayout> タグ内で、次のようにマークアップを追加します。
    XAML
    コードのコピー
    <StackLayout>
      <c1:FlexChart x:Name="chart"  ItemsSource="{Binding Data}" BindingX="Name" ChartType="Column"
       Grid.Row="1" Grid.ColumnSpan="2" VericalOptions="FillAndExpand">
        <c1:FlexChart.Series>
          <c1:ChartSeries x:Name="Sales2015" Name ="販売" Binding="Sales" ></c1:ChartSeries>
        </c1:FlexChart.Series>
      </c1:FlexChart>
    </StackLayout>
    
  3. ソリューションエクスプローラーで、QuickStart.xaml ノードを展開し、QuickStart.xaml.cs を開いて、C# コードビハインドを開きます。
  4. QuickStart() クラスコンストラクタで、FlexChart の BindingContext を設定します。

    次のコードは、上の手順を実行した後の QuickStart() クラスコンストラクタを示します。

    C#
    コードのコピー
    public QuickStart()
    {
        InitializeComponent();
        chart.BindingContext = new FlexChartDataSource();
    }
    

先頭に戻る

手順 3:プロジェクトの実行

  1. ソリューションエクスプローラーで、App.cs をダブルクリックして開きます。
  2. FlexChart コントロールを表示するには、次の手順を実行します。
    • C# クラスを返すには、次の手順を実行します。 クラスコンストラクタ App() で、新しい ContentPageMainPage として設定し、コントロールを ContentPageContent に割り当てます。それには、メソッド GetChartControl() を呼び出します(前の手順「手順 2:FlexChart コントロールの追加」で定義済み)。

      次のコードは、上記の手順を実行した後のクラスコンストラクタ App() を示します。

      C#
      コードのコピー
      public App()
      {
          // アプリケーションのルートページ
          MainPage = new ContentPage
          {
              Content = QuickStart.GetChartControl()
          };
      }
      
    • Content Page を返すには、次の手順を実行します。 クラスコンストラクタ App() で、Forms XAML ページ QuickStartMainPage として設定します。

      次のコードは、この手順を実行した後のクラスコンストラクタ App() を示します。

      C#
      コードのコピー
      public App()
      {
          // アプリケーションのルートページ
          MainPage = new QuickStart();
      }
      
  3. iOS および UWP アプリを実行するには、いくつかの追加手順が必要です。
    • iOS アプリ::
      1. ソリューションエクスプローラーで、YourAppName.iOS プロジェクト内の AppDelegate.cs をダブルクリックして開きます。
      2. 次のコードを FinishedLaunching() メソッドに追加します。
        C#
        コードのコピー
        C1.Xamarin.Forms.Chart.Platform.iOS.Forms.Init();
        
    • UWP アプリ:
      1. ソリューションエクスプローラーで、MainPage.xml を展開します。
      2. MainPage.xml.cs をダブルクリックして開きます。
      3. 次のコードをクラスコンストラクタに追加します。
        C#
        コードのコピー
        C1.Xamarin.Forms.Chart.Platform.UWP.FlexChartRenderer.Init();
        
      4. Release モードで UWP アプリケーションをコンパイルする場合は、アプリケーションに正しいアセンブリを含めるために、App.xaml.csOnLaunched メソッドに次のコードを明示的に追加する必要があります。

        C#
        コードのコピー
        var assembliesToInclude = new List<Assembly>();
        assembliesToInclude.Add(typeof(C1.Xamarin.Forms.Chart.Platform.UWP.FlexChartRenderer)
        .GetTypeInfo().Assembly);
        assembliesToInclude.Add(typeof(C1.UWP.Chart.FlexChart).GetTypeInfo().Assembly);
        Xamarin.Forms.Forms.Init(e, assembliesToInclude);
        
  4. [F5]キーを押してプロジェクトを実行します。
先頭に戻る
関連トピック