syncfusion-wpf-card-view — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-wpf-card-view (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.
A panel control that organizes items as visual cards with built-in grouping, sorting, filtering, and inline editing.
Use this skill when the user needs to:
ObservableCollection (MVVM)Note: Grouping, sorting, filtering, and editing requireItemsSourcedata binding. These features do not work with declarativeCardViewItemchildren.
| Class | Namespace | Purpose |
|---|---|---|
CardView | Syncfusion.Windows.Tools.Controls | Container panel for card items |
CardViewItem | Syncfusion.Windows.Tools.Controls | Individual card (declarative use) |
Required Assemblies: Syncfusion.Shared.WPF + Syncfusion.Tools.WPF
XAML Namespace:
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"📄 Read: references/getting-started.md
CardViewItem approachItemsSource data binding approachSelectedItem, IsSelected, SelectedItemChangedOrientation (Horizontal / Vertical)📄 Read: references/data-binding-and-templates.md
ObservableCollection patternHeaderTemplate — card header displayItemTemplate — card body in view modeEditItemTemplate — card body in edit modeItemContainerStyle and ItemContainerStyleSelectorFlowDirection for RTL layouts📄 Read: references/grouping.md
CanGroup enable/disableGroupCards(string) programmatic groupingShowHeader to hide the grouping region📄 Read: references/sorting-and-filtering.md
CanSort enable/disable; click field name to cycle sort orderShowHeader="True")ShowHeader to hide sorting/filtering header📄 Read: references/editing.md
CanEdit enable/disable (default false)EditItemTemplate requirement and patternBeginEdit() / EndEdit() programmatic control📄 Read: references/localization.md
CurrentUICulture setupMinimal CardView with data binding and grouping/sorting:
<!-- MainWindow.xaml -->
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf">
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
<syncfusion:CardView ItemsSource="{Binding CardViewItems}"
CanGroup="True"
CanSort="True"
Name="cardView">
<syncfusion:CardView.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding FirstName}"/>
</DataTemplate>
</syncfusion:CardView.HeaderTemplate>
<syncfusion:CardView.ItemTemplate>
<DataTemplate>
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBoxItem>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Name: " FontWeight="Bold"/>
<TextBlock Text="{Binding FirstName}"/>
</StackPanel>
</ListBoxItem>
<ListBoxItem>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Age: " FontWeight="Bold"/>
<TextBlock Text="{Binding Age}"/>
</StackPanel>
</ListBoxItem>
</ListBox>
</DataTemplate>
</syncfusion:CardView.ItemTemplate>
</syncfusion:CardView>
</Window>// ViewModel.cs
public class ViewModel : NotificationObject
{
private ObservableCollection<Person> _items;
public ObservableCollection<Person> CardViewItems
{
get => _items;
set { _items = value; RaisePropertyChanged(nameof(CardViewItems)); }
}
public ViewModel()
{
CardViewItems = new ObservableCollection<Person>
{
new Person { FirstName = "Alice", LastName = "Smith", Age = 30 },
new Person { FirstName = "Bob", LastName = "Jones", Age = 25 },
new Person { FirstName = "Carol", LastName = "Smith", Age = 28 },
};
}
}| Scenario | Properties / Methods |
|---|---|
| Enable all interactive modes | CanGroup="True" CanSort="True" CanEdit="True" |
| Programmatic group by field | cardView.GroupCards("LastName") |
| Programmatic edit control | cardView.BeginEdit() / cardView.EndEdit() |
| Hide group/sort/filter header | ShowHeader="False" |
| RTL layout | FlowDirection="RightToLeft" |
| React to selection | Handle SelectedItemChanged event |
| Apply theme | SfSkinManager.SetVisualStyle(cardView, VisualStyles.FluentLight) |
| Property | Type | Default | Description |
|---|---|---|---|
ItemsSource | IEnumerable | null | Data collection to bind |
SelectedItem | object | null | Currently selected card |
Orientation | Orientation | Horizontal | Card layout direction |
CanGroup | bool | false | Enable drag-drop grouping |
CanSort | bool | true | Enable field click sorting |
CanEdit | bool | false | Enable inline editing |
ShowHeader | bool | true | Show/hide group/sort/filter header |
HeaderTemplate | DataTemplate | — | Card header display template |
ItemTemplate | DataTemplate | — | Card body in view mode |
EditItemTemplate | DataTemplate | — | Card body in edit mode |
ItemContainerStyle | Style | — | Style applied to each card container |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.