Implementing SfAccordion (WPF)
When to Use This Skill
Use this skill when the user needs to:
- Build collapsible/expandable section UI in WPF
- Display categorized content with expand-on-demand behavior
- Create Outlook-style, FAQ-style, or settings-panel accordion layouts
- Bind a business object collection to an accordion
- Control how many items can be expanded simultaneously
- Customize accordion item headers, content, expander buttons, or animation
Component Overview
SfAccordion (ItemsControl)
└── SfAccordionItem (×N) (HeaderedContentControl)
├── Header — always visible (collapsed & expanded)
└── Content — visible only when expanded (IsSelected=true)Assembly: Syncfusion.SfAccordion.WPF Namespace: Syncfusion.Windows.Controls.Layout XAML Schema: http://schemas.syncfusion.com/wpf
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Assembly reference and NuGet setup
- XAML and C# control creation
- Basic SfAccordionItem with Header and Content
- Themes with SfSkinManager
Populating Items
📄 Read: references/populating-items.md
- Declarative items via
Itemscollection - Data binding via
ItemsSource - Model + ViewModel + ObservableCollection
DisplayMemberPathfor quick headersHeaderTemplate/HeaderTemplateSelectorContentTemplate/ContentTemplateSelector
Selecting Items
📄 Read: references/selecting-items.md
SelectedIndex— select by indexSelectedItem— select by instance (TwoWay binding)SelectedItems/SelectedIndices— read-only collectionsIsSelectedon individual itemsSelectAll()/UnselectAll()methodsSelectedItemsChanged/SelectionChangedevents
Selection Mode
📄 Read: references/selection-mode.md
One— exactly one expanded (default)OneOrMore— multiple expanded, at least one requiredZeroOrOne— at most one, all can collapseZeroOrMore— multiple, all can collapse- Decision guide: choosing the right mode
Appearance and Styling
📄 Read: references/appearance-and-styling.md
AccentBrush— highlight colorHeaderTemplate/ContentTemplateAccordionButtonStyle— expander arrow customizationItemContainerStyle— per-item styling- Animation enable/disable
- SfSkinManager themes
Quick Start
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
<syncfusion:SfAccordion Width="300" Height="200">
<syncfusion:SfAccordionItem Header="WPF"
Content="Essential Studio for WPF"/>
<syncfusion:SfAccordionItem Header="Silverlight"
Content="Essential Studio for Silverlight"/>
<syncfusion:SfAccordionItem Header="WinRT"
Content="Essential Studio for WinRT" IsSelected="True"/>
</syncfusion:SfAccordion>using Syncfusion.Windows.Controls.Layout;
SfAccordion accordion = new SfAccordion();
accordion.Items.Add(new SfAccordionItem { Header = "WPF", Content = "Essential Studio for WPF" });
accordion.Items.Add(new SfAccordionItem { Header = "Silverlight", Content = "Essential Studio for Silverlight" });
accordion.Items.Add(new SfAccordionItem { Header = "WinRT", Content = "Essential Studio for WinRT", IsSelected = true });
this.Content = accordion;Common Patterns
| Scenario | Approach |
|---|---|
| Multiple sections, one open at a time | SelectionMode="One" (default) |
| FAQ where multiple can be open | SelectionMode="ZeroOrMore" |
| Data-driven content | ItemsSource + HeaderTemplate + ContentTemplate |
| Highlight active item color | AccentBrush |
| Custom expander arrow | AccordionButtonStyle on SfAccordionItem |
| Slow expand/collapse animation | ExpandableContentControl.Percentage in ItemContainerStyle |
| Track which items are expanded | SelectedItemsChanged event |
Key Properties
| Property | Type | Description |
|---|---|---|
SelectionMode | AccordionSelectionMode | One / OneOrMore / ZeroOrOne / ZeroOrMore |
SelectedIndex | int | Index of most recently selected item |
SelectedItem | object | Instance of most recently selected item |
SelectedItems | read-only | All currently selected item instances |
SelectedIndices | read-only | All currently selected item indices |
ItemsSource | IEnumerable | Data collection binding |
HeaderTemplate | DataTemplate | Shared header template for all items |
ContentTemplate | DataTemplate | Shared content template for all items |
HeaderTemplateSelector | DataTemplateSelector | Per-item header template |
ContentTemplateSelector | DataTemplateSelector | Per-item content template |
AccentBrush | Brush | Accent color for item highlight |
ItemContainerStyle | Style | Style applied to each SfAccordionItem |
SfAccordionItem properties:
| Property | Description |
|---|---|
Header | Always-visible item header |
Content | Visible when item is expanded |
IsSelected | true = expanded, false = collapsed |
IsLocked | Read-only; true when item cannot be collapsed |
AccordionButtonStyle | Style for the expander toggle button |