stride3d/stride · error · NotSupportedException
SelectionMode.Multiple is not yet supported. Please use…
Error message
SelectionMode.Multiple is not yet supported. Please use SelectionMode.Single or SelectionMode.Extended.
What it means
This custom TreeView supports only SelectionMode.Single and SelectionMode.Extended. When the SelectionMode dependency property changes to Multiple, OnSelectionModeChanged immediately throws NotSupportedException because Multiple selection semantics are not implemented.
Solutions
- Use SelectionMode="Extended" to allow multi-select with ctrl/shift.
- Use SelectionMode="Single" if only one item may be selected.
- If Multiple is required, implement a custom control or wrap items with IsSelected view-model flags instead.
Example fix
// before <controls:TreeView SelectionMode="Multiple"/> // after <controls:TreeView SelectionMode="Extended"/>
Defensive patterns
Strategy: validation
Validate before calling
var mode = (SelectionMode)treeView.GetValue(controls:TreeView.SelectionModeProperty);
if (mode == SelectionMode.Multiple)
throw new NotSupportedException("Multiple selection mode is unsupported by this TreeView"); Type guard
bool IsSupportedSelectionMode(SelectionMode m) => m == SelectionMode.Single || m == SelectionMode.Extended;
Try / catch
try { treeView.SelectionMode = requested; }
catch (NotSupportedException ex) when (ex.Message.Contains("Multiple")) { treeView.SelectionMode = SelectionMode.Extended; } Prevention
- Only set Single or Extended in XAML for this control.
- Centralize selection-mode constants so Multiple is never offered to designers.
- Wrap multi-select requirements in a view-model IsSelected pattern instead of relying on Multiple.
When it happens
Trigger: Setting SelectionMode="Multiple" in XAML on this TreeView, or assigning treeView.SelectionMode = SelectionMode.Multiple in code, which fires the property-changed callback.
Common situations: Copy-pasting SelectionMode values from the standard WPF ListBox/TreeView usage; assuming full System.Windows.Controls.SelectionMode parity; designers choosing Multiple in the properties grid.
Related errors
- Can only change SelectedItems collection in multiple…
- BringItemToView cannot be used when the tree view is…
- entity must contain a non-null asset entity.
- A dispatcher lock must be created from a different thread…
- This operation can only be executed on a selection of…
AI-assisted analysis of stride3d/stride@96fad776d2 (2026-09-14).
Data as JSON: /api/errors/7915425324431a43.
Report an issue: GitHub.
Appendix: source
Thrown at sources/presentation/Stride.Core.Presentation.Wpf/Controls/TreeView.cs:599
}
if (e.NewValue != null)
{
var collection = e.NewValue as INotifyCollectionChanged;
if (collection != null)
{
collection.CollectionChanged += treeView.OnSelectedItemsChanged;
}
}
}
private static void OnSelectionModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var newValue = (SelectionMode)e.NewValue;
switch (newValue)
{
case SelectionMode.Multiple:
throw new NotSupportedException("SelectionMode.Multiple is not yet supported. Please use SelectionMode.Single or SelectionMode.Extended.");
case SelectionMode.Single:
break;
case SelectionMode.Extended:
var treeView = (TreeView)d;
var selectedItem = treeView.SelectedItem;
treeView.updatingSelection = true;
for (var i = treeView.SelectedItems.Count - 1; i >= 0; --i)
{
if (treeView.SelectedItems[i] == selectedItem)
continue;
var item = treeView.GetTreeViewItemFor(treeView.SelectedItems[i]);
if (item != null)
item.IsSelected = false;
treeView.SelectedItems.RemoveAt(i);
}View on GitHub (pinned to 96fad776d2)