Blazor | ComponentOne
Controls / FlexPie / Quick Start
In This Topic
    Quick Start
    In This Topic

    This quick start guides you through the steps of adding the FlexPie control in your Blazor application, adding data to it and displaying the data in the control. In this example, we create a data source for FlexPie by creating list of sales data of automobile companies and bind the list to the FlexPie control to display the data.

     FlexPie

    Create a Blazor App

    1. In Visual Studio, select Create a new project from the Get started pane.
    2. In the Create a new project dialog, select Blazor App and click Next.
    3. In the Configure your new project dialog, provide name of the project you want to create in the Project name field and location for the project in the Location field. Click Create.
    4. In the Create a new Blazor app dialog, select Blazor Server App template and click Create. A new server-side Blazor app is created.
      Note: Blazor Client-side app or WebAssembly app can be created using the Blazor WebAssembly App template. For details, check the Blazor WebAssembly topic in Blazor templates.

    Back to Top

    Configure References

    1. In the Solution Explorer, right click Dependencies and select Manage NuGet Packages.
    2. In NuGet Package Manager, select nuget.org as the Package source.
    3. Search for C1.Blazor.Chart package and click Install.

    Back to Top

    Configure the Data Source

    In the code, add a DataSource class to create a list of data for the FlexPie control.

    Razor
    Copy Code
    @code {
        IEnumerable<Palette> palettes = Enum.GetValues(typeof(Palette)).Cast<Palette>().Where((p, x) => p != Palette.Custom);
        Palette? palette = Palette.Standard;
    
        double[] innerRadiuses = new double[] { 0, 0.25, 0.5, 0.75 };
        double? innerRadius = 0;
    
        double[] offsets = new double[] { 0, 0.25, 0.5, 0.75 };
        double? offset = 0;
    
        public class DataSource
        {
            public class SalesData
            {
                public string Name { get; set; }
                public double Value { get; set; }
            }
    
            public static List<SalesData> GetData()
            {
                var data = new List<SalesData>()
                {
                    new SalesData{Name="Maruti", Value=1643467},
                    new SalesData{Name="Hyundai", Value=536241},
                    new SalesData{Name="Mahindra", Value=248859},
                    new SalesData{Name="Tata", Value=210200},
                    new SalesData{Name="Honda", Value=170026},
                    new SalesData{Name="Toyota", Value=140645},
                    new SalesData{Name="Renault", Value=102222},
                    new SalesData{Name="Ford", Value=90061},
                };
                return data;
            }
        }
    

    Back to Top

    Bind FlexPie to Data

    To bind FlexPie to data, set the ItemsSource property of FlexPie class which accepts the collection of items for the FlexPie control. You need to Set Binding property to specify a name of numeric property used to calculate the size of slice and set BindingName property to specify a name of property that would be used as the slice name and displayed in chart. legend.

    Razor
    Copy Code
    @using Localization
    @using C1.Chart;
    @using C1.Blazor.Chart;
    @using C1.Blazor.Input;
    
    <FlexPie Class="chart" Palette="palette ?? Palette.Standard" InnerRadius="innerRadius ?? 0" Offset="offset ?? 0"
             HeaderContent="Market Share of Automobile Companies" HeaderStyle="font-size:24px"
             LegendPosition="Position.Bottom"
             BindingName="Name" Binding="Value" ItemsSource="@DataSource.GetData()">
        <Label>
            <PieDataLabel Position="PieLabelPosition.Inside" Content="{p:n1}%" Style="font-size:12px" />
        </Label>
    </FlexPie>
    

    Back to Top

    Build and Run the Project

    1. Click Build | Build Solution to build the project.
    2. Press F5 to run the project.

    Back to Top