# Quick Start

This quick start guides you through the steps of adding the ComboBox control in your Blazor application, adding data to it and displaying the data in the control.

## Content



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

![ComboBox binding](https://cdn.mescius.io/document-site-files/images/f5b600ba-f1a7-4f89-a20c-aa6c0c35880d/images/combobox_binding.png)

## 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 WebAssembly App**, and click **Next**. Alternatively, you can also create a Blazor Server App. 
	> type=note
	> **Note**: **Blazor Server App** or server-side app can be created using the Blazor Server App template. For more details, see [Blazor Server](/componentone/docs/blazor/online-blazor/blazortypes/blazorserver) topic under Blazor Project Types.
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 **Next**.
4.  In the **Additional information** dialog, select the target framework from the **Framework** dropdown, if required and click **Create**. By default, the selected framework is **.NET 8.0**.<br />A new client-side Blazor app is created.

## 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.Input** package and click **Install**.
4.  Navigate to the **wwwroot**, open **index.html** file.
5.  Register the client resources by adding the following lines of code to the **\<head>** tag.<br />
    
    ```EXAMPLE
    <link rel="stylesheet" href="/_content/C1.Blazor.Core/styles.css" />
    <link rel="stylesheet" href="/_content/C1.Blazor.Input/styles.css" />
    ```
    
6.  Add the following code to the **\<body>** tag.
    
    ```html
    <script src="/_content/C1.Blazor.Core/scripts.js"></script>
    <script src="/_content/C1.Blazor.Input/scripts.js"></script>
    ```
    
7.  Right click on **Pages** folder, click **Add |** **Razor Component** to add a new Razor page and then provide a name, say _ComboBoxQuickStart._
8.  Add the required directives to initialize and use the ComboBox control in the new Razor page.<br />
    
    ```razor
    @using C1.Blazor.Input
    ```
    

## Configure the Data Source

In the **Data** folder, add a class, say Country, and add the following code.

```csharp
public class Country
    {
        public override string ToString()
        {
            return Name;
        }
        public string Code { get; set; }
        public string Name { get; set; }
        public static List<Country> GetCountries()
        {
            var assembly = typeof(Country).GetTypeInfo().Assembly;
            var stream = assembly.GetManifestResourceStream("ComboBox.Data.countries.json");
            var json = new System.IO.StreamReader(stream).ReadToEnd();
            var countries = JsonSerializer.Deserialize<Dictionary<string, string>>(json);
            var listContries = new List<Country>();
            foreach (var item in countries)
            {
                listContries.Add(new Country() { Code = item.Key, Name = item.Value.ToString() });
            }
            return listContries.OrderBy(c => c.Name).ToList();
        }
     }
}
```

## Bind ComboBox to Data

To bind ComboBox to data, set the [ItemsSource](/componentone/api/blazor/online-blazor/dotnet-api/C1.Blazor.Input/C1.Blazor.Input.C1ComboBox-1.ItemsSource.html) property and type of the type parameter **T** for C1ComboBox component. Here, the **ItemsSource** property accepts the collection of items for the ComboBox control.

Replace the existing code in the **Pages\\Index.razor** page with the following code.

```razor
<C1ComboBox ItemsSource="countries" T="Country" Text="Select a Country" />
@code
{
    IEnumerable<Country> countries;
    protected override void OnInitialized()
    {
        countries = Country.GetCountries();
    }
}
```

## Build and Run the Project

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