このセクションでは、移植可能なアプリまたは共有アプリに FlexPie コントロールを追加し、そこにデータを追加する方法について説明します。C# または XAML で ComponentOne for Xamarin コンポーネントを追加する方法については、「C# によるコンポーネントの追加」または「XAML によるコンポーネントの追加」を参照してください。
このトピックは 3 つの手順で構成されます。
次の図は、上記の手順を実行した後の FlexPie を示しています。
次のクラスは、FlexPie のデータソースとして機能します。
C# |
コードのコピー
|
---|---|
class FlexPieDataSource { private List<FruitEntity> entityList; public List<FruitEntity> Data { get { return entityList; } } public FlexPieDataSource() { entityList = new List<FruitEntity>(); string[] fruits = new string[] { "みかん", "りんご", "なし", "バナナ", "パイナップル" }; Random random = new Random(); for (int i = 0; i < fruits.Length; i++) { decimal value = (decimal)random.NextDouble() * 100; entityList.Add(new FruitEntity(fruits[i], value)); } } } class FruitEntity { public string Name { get; set; } public decimal Value { get; set; } public FruitEntity(string name, decimal value) { this.Name = name; this.Value = value; } } |
C# または XAML で FlexPie コントロールを初期化するには、次の手順を実行します。
C# |
コードのコピー
|
---|---|
using Xamarin.Forms; using C1.Xamarin.Forms.Chart; |
C# |
コードのコピー
|
---|---|
public static FlexPie GetFlexPie() { FlexPie chart = new FlexPie(); FlexPieDataSource ds = new FlexPieDataSource(); chart.BindingName = "Name"; chart.Binding = "Value"; chart.ItemsSource = ds.Data; return chart; } |
XAML |
コードのコピー
|
---|---|
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:c1="clr-namespace:C1.Xamarin.Forms.Chart;assembly=C1.Xamarin.Forms.Chart" x:Class="QuickstartChart.FlexPieQuickStart"> |
XAML |
コードのコピー
|
---|---|
<StackLayout> <c1:FlexPie x:Name="chart" ItemsSource="{Binding Data}" BindingName="Name" Binding="Value" Grid.Row="1" Grid.ColumnSpan="2" VerticalOptions="FillAndExpand"> </c1:FlexPie> </StackLayout> |
次のコードは、上の手順を実行した後の QuickStart()
クラスコンストラクタを示します。
C# |
コードのコピー
|
---|---|
public FlexPieQuickStart() { InitializeComponent(); chart.BindingContext = new FlexPieDataSource(); } |
次のコードは、上記の手順を実行した後のクラスコンストラクタ App() を示します。
C# |
コードのコピー
|
---|---|
public App() { // アプリケーションのルートページ MainPage = new ContentPage { Content = FlexPieQuickStart.GetFlexPie() }; } |
次のコードは、この手順を実行した後のクラスコンストラクタ App() を示します。
C# |
コードのコピー
|
---|---|
public App() { // アプリケーションのルートページ MainPage = new FlexPieQuickStart(); } |
C# |
コードのコピー
|
---|---|
C1.Xamarin.Forms.Chart.Platform.iOS.FlexPieRenderer.Init(); |
C# |
コードのコピー
|
---|---|
C1.Xamarin.Forms.Chart.Platform.UWP.FlexPieRenderer.Init(); |
Release モードで UWP アプリケーションをコンパイルする場合は、アプリケーションに正しいアセンブリを含めるために、App.xaml.cs の OnLaunched メソッドに次のコードを明示的に追加する必要があります。
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); |