syncfusion-blazor-dropdowns — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-blazor-dropdowns (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The AutoComplete component provides intelligent search suggestions as users type, supporting local and remote data sources with advanced filtering, customization, and accessibility features.
The SfAutoComplete component enables:
Choose the reference that matches your current task:
#### Getting Started 📄 Read: references/getting-started.md
#### Data Binding & Sources 📄 Read: references/data-binding.md
#### Filtering & Search 📄 Read: references/filtering-and-search.md
#### Data Organization 📄 Read: references/data-organization.md
#### Templates & Styling 📄 Read: references/templates-and-styling.md
#### Advanced Features 📄 Read: references/advanced-features.md
#### Accessibility & Best Practices 📄 Read: references/accessibility-and-best-practices.md
A minimal AutoComplete implementation with local data:
@using Syncfusion.Blazor.DropDowns
<SfAutoComplete TValue="string" TItem="Country" DataSource="@Countries">
<AutoCompleteFieldSettings Value="CountryName"></AutoCompleteFieldSettings>
</SfAutoComplete>
@code {
public class Country
{
public string CountryName { get; set; }
}
private List<Country> Countries = new()
{
new Country { CountryName = "Austria" },
new Country { CountryName = "Brazil" },
new Country { CountryName = "Canada" }
};
}#### Pattern 1: Filtering User Input Enable real-time filtering as users type:
<SfAutoComplete TValue="string" TItem="string"
DataSource="@Options"
AllowFiltering="true"
FilterType="FilterType.Contains">
</SfAutoComplete>#### Pattern 2: Remote Data with Debounce Reduce server requests with debounce delay:
<SfAutoComplete TValue="string" TItem="Product"
AllowFiltering="true"
DebounceDelay="300">
<SfDataManager Url="api/products" Adaptor="Syncfusion.Blazor.Adaptors.ODataAdaptor"></SfDataManager>
</SfAutoComplete>#### Pattern 3: Custom Item Display with Templates Customize list item appearance:
<SfAutoComplete TValue="string" TItem="Product" DataSource="@Products">
<AutoCompleteTemplates TItem="Product">
<ItemTemplate>
<div>
<span>@((context as Product)?.ProductName)</span>
<span style="float:right">@((context as Product)?.Price)</span>
</div>
</ItemTemplate>
</AutoCompleteTemplates>
</SfAutoComplete>#### Pattern 4: Grouped & Sorted Display Organize data with grouping and sorting:
<SfAutoComplete TValue="string" TItem="Employee"
DataSource="@Employees"
SortOrder="SortOrder.Ascending">
<AutoCompleteFieldSettings GroupBy="Department" Value="EmployeeName"></AutoCompleteFieldSettings>
</SfAutoComplete>| Prop | Type | Purpose |
|---|---|---|
DataSource | IEnumerable<TItem> | Source data for suggestions |
AllowFiltering | bool | Enable/disable filtering |
FilterType | FilterType | Filter mode (StartsWith, Contains, EndsWith) |
DebounceDelay | int | Delay in ms before filter triggers |
MinLength | int | Min characters to trigger filtering |
SortOrder | SortOrder | Sort list items (Ascending, Descending) |
EnableVirtualization | bool | Virtualize large datasets |
AllowCustom | bool | Allow users to enter custom values |
Placeholder | string | Input placeholder text |
FloatLabelType | FloatLabelType | Floating label behavior |
Next Steps: Start with getting-started.md for setup, or jump to the reference that matches your task.
A comprehensive skill for implementing the ComboBox component. The ComboBox allows users to select a value from a dropdown list while also providing filtering, custom templates, cascading scenarios, data binding, and extensive customization options.
Use this skill when you need to:
@using Syncfusion.Blazor.DropDowns
<SfComboBox TItem="Country" TValue="string"
Placeholder="Select a country"
DataSource="@CountryData"
@bind-Value="@SelectedValue">
<ComboBoxFieldSettings Text="Name" Value="Code"></ComboBoxFieldSettings>
</SfComboBox>
@code {
private string SelectedValue = "USA";
private List<Country> CountryData = new()
{
new Country { Name = "United States", Code = "USA" },
new Country { Name = "United Kingdom", Code = "UK" },
new Country { Name = "Canada", Code = "CA" }
};
public class Country
{
public string Name { get; set; }
public string Code { get; set; }
}
}| Property | Type | Purpose |
|---|---|---|
TValue | Generic | Type of the selected value |
TItem | Generic | Type of data items in the list |
DataSource | IEnumerable | List of items to display |
@bind-Value | TValue | Two-way binding for selected value |
@bind-Index | int? | Two-way binding for selected index |
Placeholder | string | Hint text when no value selected |
AllowFiltering | bool | Enable/disable filtering |
AllowCustom | bool | Allow free-text entry |
Readonly | bool | Make component read-only |
Disabled | bool | Disable the component |
#### Pattern 1: Basic Data Binding Bind ComboBox to local list with primitive or complex types. Use ComboBoxFieldSettings to map text/value fields.
#### Pattern 2: Filtering & Search Enable AllowFiltering to let users filter data as they type. Control filter behavior with FilterType and DebounceDelay.
#### Pattern 3: Cascading ComboBox Use ValueChange event in parent ComboBox to populate child ComboBox data dynamically based on parent selection.
#### Pattern 4: Form Integration Wrap ComboBox in EditForm with data annotations for automatic validation. Use ValidationMessage to display errors.
#### Pattern 5: Custom Templates Use ItemTemplate, HeaderTemplate, FooterTemplate to create custom UI for list items and popup sections.
Read the appropriate reference file based on your task:
#### 📄 Getting Started Read: references/getting-started.md
#### 📄 Data Binding Read: references/data-binding.md
#### 📄 Filtering & Search Read: references/filtering.md
AllowFiltering#### 📄 Selection & Value Binding Read: references/selection-and-value.md
#### 📄 Cascading ComboBox Read: references/cascading-combobox.md
#### 📄 Templates & Customization Read: references/templates-and-customization.md
#### 📄 Events & Validation Read: references/events-and-validation.md
#### 📄 Popup & Appearance Read: references/popup-and-appearance.md
#### 📄 Advanced Features Read: references/advanced-features.md
#### 📄 Troubleshooting Read: references/troubleshooting.md
Use Case 1: Country/State/City Selection
Use Case 2: Search/Filter List with Custom Display
Use Case 3: Form with Multiple Dropdowns
Use Case 4: Large Dataset Performance
✅ Local & Remote Data Binding - Support for arrays, lists, observables, DataManager ✅ Flexible Filtering - Built-in filtering with customization options ✅ Templates - Item, group, header, footer templates for custom UI ✅ Cascading - Create dependent dropdown chains ✅ Form Integration - Native EditForm and validation support ✅ Events - Rich event system for user interactions ✅ Accessibility - WCAG compliance, keyboard navigation ✅ Customization - Theming, styling, CSS classes ✅ Performance - Virtualization support for large lists ✅ RTL Support - Right-to-left language support
A comprehensive skill for implementing the Syncfusion DropDown List component in Blazor applications. This component provides flexible item selection with support for data binding, filtering, templating, cascading, and extensive customization options.
Use this skill when you need to:
Key Capabilities:
#### Getting Started 📄 Read: references/getting-started-dropdown-list.md
#### Data Binding 📄 Read: references/data-binding.md
#### Filtering and Searching 📄 Read: references/filtering-and-searching.md
#### Templates and Rendering 📄 Read: references/templates-and-rendering.md
#### Selection and Value Binding 📄 Read: references/selection-and-value-binding.md
#### Customization and Styling 📄 Read: references/customization-and-styling.md
#### Advanced Features 📄 Read: references/advanced-features.md
#### Form Validation 📄 Read: references/form-validation.md
#### Localization and RTL 📄 Read: references/localization-and-rtl.md
#### Accessibility 📄 Read: references/accessibility.md
#### Basic Dropdown Implementation
@page "/dropdown-demo"
<h3>Simple Dropdown List</h3>
<SfDropDownList TValue="int" TItem="Country" DataSource="@Countries" Placeholder="Select a country">
<DropDownListFieldSettings Text="@nameof(Country.CountryName)" Value="@nameof(Country.CountryId)" />
</SfDropDownList>
@code {
public List<Country> Countries { get; set; }
protected override void OnInitialized()
{
Countries = new List<Country>
{
new Country { CountryId = 1, CountryName = "United States" },
new Country { CountryId = 2, CountryName = "Canada" },
new Country { CountryId = 3, CountryName = "Mexico" }
};
}
public class Country
{
public int CountryId { get; set; }
public string CountryName { get; set; }
}
}#### With Value Binding and Selection Event
<SfDropDownList TValue="int" TItem="Country" @bind-Value="SelectedCountryId"
DataSource="@Countries"
Placeholder="Choose a country">
<DropDownListFieldSettings Text="@nameof(Country.CountryName)" Value="@nameof(Country.CountryId)" />
<DropDownListEvents TValue="int" TItem="Country" ValueChange="@OnValueChange"></DropDownListEvents>
</SfDropDownList>
<p>Selected: @SelectedCountryId</p>
@code {
private int SelectedCountryId;
protected override void OnInitialized()
{
Countries = new List<Country>
{
new Country { CountryId = 1, CountryName = "United States" },
new Country { CountryId = 2, CountryName = "Canada" },
new Country { CountryId = 3, CountryName = "Mexico" }
};
}
public class Country
{
public int CountryId { get; set; }
public string CountryName { get; set; }
}
private void OnValueChange(ChangeEventArgs<int, Country> args)
{
SelectedCountryId = args.Value;
// Handle value change
}
}#### Pattern 1: Dropdown with Filtering
Enable filter-as-you-type functionality to let users quickly find items in large lists:
<SfDropDownList TValue="string" TItem="string"
DataSource="@Items"
AllowFiltering="true"
FilterType="Syncfusion.Blazor.DropDowns.FilterType.Contains"
Placeholder="Type to filter">
</SfDropDownList>#### Pattern 2: Cascading Dropdowns
Create dependent dropdowns where selection in one dropdown affects the options in another:
<SfDropDownList TValue="int" TItem="Country" @bind-Value="SelectedCountry"
DataSource="@Countries"
Placeholder="Select Country">
<DropDownListFieldSettings Text="@nameof(Country.Name)" Value="@nameof(Country.Id)" />
<DropDownListEvents TValue="int" TItem="Country" ValueChange="@OnCountryChange"></DropDownListEvents>
</SfDropDownList>
<SfDropDownList TValue="int" TItem="City"
DataSource="@FilteredCities"
Placeholder="Select City">
<DropDownListFieldSettings Text="@nameof(City.Name)" Value="@nameof(City.Id)" />
</SfDropDownList>
@code {
private int SelectedCountry;
private List<City> FilteredCities;
private void OnCountryChange(ChangeEventArgs<int, Country> args)
{
SelectedCountry = args.Value;
FilteredCities = Cities.Where(c => c.CountryId == SelectedCountry).ToList();
}
}#### Pattern 3: Remote Data Binding
Connect to APIs for dynamic data loading:
<SfDropDownList TValue="int" TItem="DataItem"
DataSource="@RemoteData"
Placeholder="Select item">
<DropDownListFieldSettings Text="@nameof(DataItem.CountryName)" Value="@nameof(DataItem.CountryId)" />
<DropDownListEvents TValue="int" TItem="DataItem" OnActionComplete="@OnActionComplete"></DropDownListEvents>
</SfDropDownList>
@code {
private List<DataItem> RemoteData;
private async Task OnActionComplete(ActionCompleteEventArgs<DataItem> args)
{
var response = await HttpClient.GetAsync("api/items");
RemoteData = await response.Content.ReadAsAsync<List<DataItem>>();
}
public class DataItem
{
public int CountryId { get; set; }
public string CountryName { get; set; }
}
}#### Pattern 4: Custom Item Template
Use templates to display rich content in dropdown items:
<SfDropDownList TValue="int" TItem="Employee" DataSource="@Employees">
<DropDownListFieldSettings Text="@nameof(Employee.EmployeeName)" Value="@nameof(Employee.Id)" />
<DropDownListTemplates TValue="Employee">
<ItemTemplate>
<span>@context.EmployeeName - @context.Designation</span>
</ItemTemplate>
</DropDownListTemplates>
</SfDropDownList>#### Pattern 5: Form Validation
Integrate with EditForm for validation:
<EditForm Model="@FormModel">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="form-group">
<label>Select Department</label>
<SfDropDownList TValue="int" TItem="Department" @bind-Value="FormModel.DepartmentId"
DataSource="@Departments"
Placeholder="Choose department">
<DropDownListFieldSettings Text="@nameof(Department.Name)" Value="@nameof(Department.Id)" />
</SfDropDownList>
</div>
<button type="submit">Submit</button>
</EditForm>
@code {
private FormData FormModel = new();
public class FormData
{
[Required(ErrorMessage = "Department is required")]
public int DepartmentId { get; set; }
}
}#### Essential Properties
| Property | Description |
|---|---|
DataSource | IEnumerable<T> Collection of items to display |
Value / @bind-Value | TValue Currently selected value |
Placeholder | string Hint text when no selection |
AllowFiltering | bool Enable search/filter functionality |
FilterType | FilterType Filter strategy (StartsWith, Contains, EndsWith) |
Enabled | bool Enable or disable the dropdown |
EnableRtl | bool Right-to-Left text direction |
Width | string Component width (px, %, etc.) |
Field mapping: Use the <DropDownListFieldSettings Text="..." Value="..." /> child component tag to map data fields.#### Essential Events (inside <DropDownListEvents>)
| Event | Description |
|---|---|
ValueChange | Triggered when selected value changes |
OnActionBegin | Before remote data fetch begins |
OnActionComplete | After remote data fetch completes |
OnActionFailure | When remote data fetch fails |
OnOpen | When dropdown opens |
OnClose | When dropdown closes |
Focus | When component receives focus |
Blur | When component loses focus |
For detailed implementation patterns, complete code examples, and troubleshooting guidance, read the appropriate reference file based on your specific needs.
The MultiSelect Dropdown component enables users to select multiple items from a list with support for filtering, grouping, sorting, keyboard navigation, accessibility, and extensive customization options. This skill guides you through installation, implementation, data binding, features, customization, and advanced scenarios.
Use this skill when you need to:
Key Capabilities:
#### Getting Started 📄 Read: references/getting-started.md
#### Data Binding 📄 Read: references/data-binding.md
#### Features and Selection 📄 Read: references/features-and-selection.md
#### Filtering and Grouping 📄 Read: references/filtering-and-grouping.md
#### Customization and Styling 📄 Read: references/customization-and-styling.md
#### Accessibility and Templates 📄 Read: references/accessibility-and-templates.md
#### Events and API Reference 📄 Read: references/events-and-api.md
#### Advanced Scenarios 📄 Read: references/advanced-scenarios.md
#### Minimal Example
1. Install NuGet Package:
dotnet add package Syncfusion.Blazor.DropDowns2. Add to `_Imports.razor`:
@using Syncfusion.Blazor
@using Syncfusion.Blazor.DropDowns3. Register Service in `Program.cs`:
builder.Services.AddSyncfusionBlazor();4. Add Theme in `App.razor`:
<link href="_content/Syncfusion.Blazor.Themes/bootstrap5.css" rel="stylesheet" />
<script src="_content/Syncfusion.Blazor.Core/scripts/syncfusion-blazor.min.js"></script>5. Use MultiSelect Dropdown:
@page "/multiselect-demo"
@using Syncfusion.Blazor.DropDowns
<SfMultiSelect TValue="string[]"
TItem="EmployeeData"
DataSource="@Employees"
Placeholder="Select employees">
<MultiSelectFieldSettings Text="Name" Value="ID"></MultiSelectFieldSettings>
</SfMultiSelect>
@code {
private List<EmployeeData> Employees { get; set; } = new();
protected override void OnInitialized()
{
Employees = new List<EmployeeData>
{
new() { ID = "1", Name = "Alice Johnson" },
new() { ID = "2", Name = "Bob Smith" },
new() { ID = "3", Name = "Carol White" }
};
}
public class EmployeeData
{
public string ID { get; set; }
public string Name { get; set; }
}
}#### Pattern 1: Two-Way Binding with Selection Change
@page "/multiselect-binding"
@using Syncfusion.Blazor.DropDowns
<div>
<p>Selected IDs: @string.Join(", ", SelectedValues)</p>
<SfMultiSelect TValue="string[]"
TItem="ItemData"
DataSource="@Items"
@bind-Value="SelectedValues"
Placeholder="Select items">
<MultiSelectFieldSettings Text="Name" Value="ID"></MultiSelectFieldSettings>
</SfMultiSelect>
</div>
@code {
private string[] SelectedValues { get; set; } = Array.Empty<string>();
private List<ItemData> Items { get; set; } = new();
protected override void OnInitialized()
{
Items = new List<ItemData>
{
new() { ID = "1", Name = "Item 1" },
new() { ID = "2", Name = "Item 2" },
new() { ID = "3", Name = "Item 3" }
};
}
public class ItemData
{
public string ID { get; set; }
public string Name { get; set; }
}
}#### Pattern 2: Filtering with Remote Data
<SfMultiSelect TValue="string[]"
TItem="RemoteItem"
DataSource="@RemoteData"
AllowFiltering="true"
Mode="VisualMode.CheckBox"
Placeholder="Search and select">
<MultiSelectFieldSettings Text="Text" Value="ID"></MultiSelectFieldSettings>
<MultiSelectEvents TValue="string[]" TItem="RemoteItem"
Filtering="OnFiltering">
</MultiSelectEvents>
</SfMultiSelect>
@code {
private List<RemoteItem> RemoteData { get; set; } = new();
private async Task OnFiltering(FilteringEventArgs args)
{
// Filter items based on search text
args.PreventDefaultAction = true;
var filtered = RemoteData
.Where(x => x.Text.Contains(args.Text, StringComparison.OrdinalIgnoreCase))
.ToList();
// Update DataSource with filtered results
// (Implementation depends on your component reference handling)
}
public class RemoteItem
{
public string ID { get; set; }
public string Text { get; set; }
}
}#### Pattern 3: Custom Validation in Form
<EditForm Model="FormData" OnValidSubmit="HandleSubmit">
<DataAnnotationsValidator />
<div class="form-group">
<label>Select at least 2 items:</label>
<SfMultiSelect TValue="string[]"
TItem="ItemData"
DataSource="@Items"
@bind-Value="FormData.SelectedItems"
Placeholder="Select items">
<MultiSelectFieldSettings Text="Name" Value="ID"></MultiSelectFieldSettings>
</SfMultiSelect>
<ValidationMessage For="@(() => FormData.SelectedItems)" />
</div>
<button type="submit">Submit</button>
</EditForm>
@code {
private FormModel FormData { get; set; } = new();
private List<ItemData> Items { get; set; } = new();
private async Task HandleSubmit()
{
// Handle form submission
}
public class FormModel
{
[Required(ErrorMessage = "Please select items")]
[MinLength(2, ErrorMessage = "Select at least 2 items")]
public string[] SelectedItems { get; set; } = Array.Empty<string>();
}
public class ItemData
{
public string ID { get; set; }
public string Name { get; set; }
}
}| Property | Type | Description | When to Use |
|---|---|---|---|
DataSource | IEnumerable<TItem> | Collection of items to display | Always required |
Value | TValue | Currently selected values (array or collection) | Binding selections |
Placeholder | string | Placeholder text when empty | UX improvement |
AllowFiltering | bool | Enable/disable search filtering | For searchable lists |
Mode | VisualMode | Selection display mode (Default, Box, Delimiter, CheckBox) | Customize display style |
Enabled | bool | Enable/disable component (default: true) | Conditional states |
AllowCustomValue | bool | Allow user-entered custom values | Free-form input |
EnableVirtualization | bool | Enable virtualization for large data | Performance optimization |
PopupHeight | string | Height of dropdown popup (default: 300px) | Customize appearance |
PopupWidth | string | Width of dropdown popup (default: 100%) | Customize appearance |
CssClass | string | Custom CSS class | Custom styling |
ShowSelectAll | bool | Show select all option in CheckBox mode | Bulk selection |
ShowClearButton | bool | Display clear button (default: true) | Allow clearing selection |
ShowDropDownIcon | bool | Display dropdown icon (default: true) | Visual indicator |
MaximumSelectionLength | int | Max items that can be selected (default: 1000) | Limit selections |
HideSelectedItem | bool | Hide selected items in popup | Clean popup display |
EnableSelectionOrder | bool | Enable selection order display (default: true) | Show selection sequence |
EnableCloseOnSelect | bool | Auto-close popup after selection | Quick selection UX |
DelimiterChar | string | Separator for Delimiter mode (default: ",") | Customize separator |
FilterBarPlaceholder | string | Placeholder for filter input | Filter UX |
FloatLabelType | FloatLabelType | Floating label behavior (Never, Always, Auto) | Modern form styling |
EnableRtl | bool | Right-to-left language support | International apps |
ReadOnly | bool | Read-only mode (default: false) | Display-only state |
TabIndex | int | Tab order index (default: 0) | Keyboard navigation |
Case 1: Employee Selection in Team Assignment
Case 2: Category/Tag Selection for Content
Case 3: Department/Location Multi-Filter
Case 4: Subscription Preferences
Ready to implement MultiSelect Dropdown? Start with Getting Started for setup, then navigate to other references based on your specific needs.
The Mention component provides @mention functionality for tagging users, items, or entities within text content. It displays a suggestion list when users type a trigger character (default: @), enabling easy selection and insertion of tagged items.
Use the Mention component when you need to:
The Mention component is a dropdown that enables users to mention items from a configured data source by typing a trigger character (default: @). It displays a filtered suggestion list that users can select from, automatically inserting the mention into the target element.
#### Key Capabilities
Choose your topic below to get started:
#### 📄 Getting Started Read: references/getting-started.md
#### 📄 Working with Data Read: references/working-with-data.md
#### 📄 Filtering & Search Read: references/filtering-and-search.md
#### 📄 Customization Read: references/customization.md
#### 📄 Templates & Display Read: references/templates.md
#### 📄 Accessibility Read: references/accessibility.md
<SfMention TItem="PersonData" DataSource="@TeamMembers">
<TargetComponent>
<textarea id="mentionTarget" placeholder="Type @ to mention someone"></textarea>
</TargetComponent>
<ChildContent>
<MentionFieldSettings Text="Name"></MentionFieldSettings>
</ChildContent>
</SfMention>
<style>
#mentionTarget {
min-height: 100px;
border: 1px solid #D7D7D7;
border-radius: 4px;
padding: 8px;
font-size: 14px;
width: 100%;
}
</style>
@code {
public class PersonData
{
public string Name { get; set; }
public string Email { get; set; }
}
List<PersonData> TeamMembers = new List<PersonData>
{
new PersonData { Name = "Alice Johnson", Email = "[email protected]" },
new PersonData { Name = "Bob Smith", Email = "[email protected]" },
new PersonData { Name = "Carol White", Email = "[email protected]" }
};
}#### Pattern 1: Comment Section with User Mentions
<SfMention TItem="UserData" DataSource="@AllUsers" MentionChar="@MentionCharAt">
<TargetComponent>
<div id="comments" contenteditable="true" placeholder="Type @ to mention..."></div>
</TargetComponent>
<ChildContent>
<MentionFieldSettings Text="UserName"></MentionFieldSettings>
</ChildContent>
</SfMention>
@code {
private char MentionCharAt = '@';
}#### Pattern 2: Filtered Suggestions with Remote Data
<SfMention TItem="EmployeeData" MentionChar="@MentionCharAt" MinLength="2" FilterType="FilterType.StartsWith">
<TargetComponent>
<input id="employeeInput" type="text" placeholder="Search employees..." />
</TargetComponent>
<ChildContent>
<SfDataManager Url="YOUR_API_ENDPOINT" Adaptor="Adaptors.WebApiAdaptor"></SfDataManager>
<MentionFieldSettings Text="Name"></MentionFieldSettings>
</ChildContent>
</SfMention>
@code {
private char MentionCharAt = '@';
}#### Pattern 3: Custom Display with Templates
<SfMention TItem="PersonData" DataSource="@TeamMembers" MentionChar="@MentionCharAt">
<TargetComponent>
<div id="mentionDiv" contenteditable="true"></div>
</TargetComponent>
<ItemTemplate>
<div class="mention-item">
<span>@((context as PersonData).Name)</span>
<small>@((context as PersonData).Email)</small>
</div>
</ItemTemplate>
<DisplayTemplate>
<span class="mentioned-user">@((context as PersonData).Name)</span>
</DisplayTemplate>
<ChildContent>
<MentionFieldSettings Text="Name"></MentionFieldSettings>
</ChildContent>
</SfMention>
@code {
private char MentionCharAt = '@';
}| Property | Type | Default | Purpose |
|---|---|---|---|
TItem | Generic | - | Data source item type |
DataSource | IEnumerable<TItem> | - | Local data collection |
MentionChar | char | '@' | Trigger character for suggestions |
Target | string | - | CSS selector for target element |
MinLength | int | 0 | Minimum characters to show suggestions |
FilterType | FilterType | Contains | Search filter mode (StartsWith, Contains, EndsWith) |
AllowSpaces | bool | false | Allow spaces in mention search |
ShowMentionChar | bool | false | Display trigger character with mention |
SuffixText | string | - | Text appended after mention (space, newline) |
RequireLeadingSpace | bool | false | Require space before mention character |
PopupHeight | string | 300px | Suggestion list height |
PopupWidth | string | auto | Suggestion list width |
SuggestionCount | int | 25 | Maximum items in suggestion list |
User Tagging in Comments
Task Assignment Notifications
Code or Entity References
Multi-target Mention
For additional help:
A comprehensive skill for implementing and working with the SfListBox component in Blazor applications. The ListBox displays a scrollable list of items with support for single/multiple selection, checkboxes, filtering, drag-and-drop, icons, and custom templates.
Use this skill when you need to:
The SfListBox component is a flexible dropdown alternative that displays items in a scrollable list format.
Key Characteristics:
string[], int[])@using Syncfusion.Blazor.DropDowns
<SfListBox TValue="string[]" DataSource="@Items" TItem="string"></SfListBox>
@code {
public string[] Items = new string[] { "Apple", "Banana", "Orange", "Mango", "Grape" };
}With data binding:
<SfListBox TValue="string[]" DataSource="@Vehicles" TItem="VehicleData">
<ListBoxFieldSettings Text="Text" Value="Id" />
</SfListBox>
@code {
public List<VehicleData> Vehicles = new List<VehicleData>
{
new VehicleData { Text = "Hennessey Venom", Id = "Vehicle-01" },
new VehicleData { Text = "Bugatti Chiron", Id = "Vehicle-02" },
new VehicleData { Text = "McLaren F1", Id = "Vehicle-03" }
};
public class VehicleData
{
public string Text { get; set; }
public string Id { get; set; }
}
}Important Properties:
DataSource - Array or list of items to displayTValue - Type of selected values (string[], int[], etc.)TItem - Type of data source itemsValue - Currently selected values (two-way bindable)MaximumSelectionLength - Limit number of selections (default: 500)Enabled - Enable/disable the componentAllowFiltering - Enable search/filter functionalityAllowdragging - Enable drag-and-drop reorderingSelection Settings:
Mode - SelectionMode.Single or SelectionMode.MultipleShowCheckbox - Show checkboxes for selectionShowSelectAll - Show "Select All" checkboxCommon Events:
ValueChange - Fires when selected values changeChange - Fires on item selection changeSelect - Fires when item is selected#### 1. Single Selection Mode
<ListBoxSelectionSettings Mode="Syncfusion.Blazor.DropDowns.SelectionMode.Single" />#### 2. Multiple Selection with Checkboxes
<ListBoxSelectionSettings ShowCheckbox="true" ShowSelectAll="true" />#### 3. Getting Selected Values
@bind-Value="@SelectedValues"
@code {
public string[] SelectedValues { get; set; }
}#### 4. Handling Selection Change
<SfListBox ValueChange="@OnSelectionChanged" ...>
</SfListBox>
@code {
private void OnSelectionChanged(ChangeEventArgs args)
{
var selectedValues = args.Value as string[];
// Process selected values
}
}#### 5. Filtering Enabled
<SfListBox AllowFiltering="true" FilterType="FilterType.Contains" ... >
</SfListBox>Choose the reference that matches your current task:
#### Getting Started 📄 Read: references/getting-started.md
#### Data Binding 📄 Read: references/data-binding.md
#### Selection & Modes 📄 Read: references/selection-and-modes.md
#### Features & Interactions 📄 Read: references/features-and-interactions.md
#### Styling & Appearance 📄 Read: references/styling-and-appearance.md
#### Accessibility & Events 📄 Read: references/accessibility-and-events.md
Choose a reference based on your scenario:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.