{"record":{"id":"7915425324431a43","repo":"stride3d/stride","slug":"selectionmode-multiple-is-not-yet-supported-please-use","errorCode":null,"errorMessage":"SelectionMode.Multiple is not yet supported. Please use SelectionMode.Single or SelectionMode.Extended.","messagePattern":"SelectionMode\\.Multiple is not yet supported\\. Please use SelectionMode\\.Single or SelectionMode\\.Extended\\.","errorType":"exception","errorClass":"NotSupportedException","httpStatus":null,"severity":"error","filePath":"sources/presentation/Stride.Core.Presentation.Wpf/Controls/TreeView.cs","lineNumber":599,"sourceCode":"            }\n\n            if (e.NewValue != null)\n            {\n                var collection = e.NewValue as INotifyCollectionChanged;\n                if (collection != null)\n                {\n                    collection.CollectionChanged += treeView.OnSelectedItemsChanged;\n                }\n            }\n        }\n\n        private static void OnSelectionModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)\n        {\n            var newValue = (SelectionMode)e.NewValue;\n            switch (newValue)\n            {\n                case SelectionMode.Multiple:\n                    throw new NotSupportedException(\"SelectionMode.Multiple is not yet supported. Please use SelectionMode.Single or SelectionMode.Extended.\");\n\n                case SelectionMode.Single:\n                    break;\n\n                case SelectionMode.Extended:\n                    var treeView = (TreeView)d;\n                    var selectedItem = treeView.SelectedItem;\n                    treeView.updatingSelection = true;\n                    for (var i = treeView.SelectedItems.Count - 1; i >= 0; --i)\n                    {\n                        if (treeView.SelectedItems[i] == selectedItem)\n                            continue;\n\n                        var item = treeView.GetTreeViewItemFor(treeView.SelectedItems[i]);\n                        if (item != null)\n                            item.IsSelected = false;\n                        treeView.SelectedItems.RemoveAt(i);\n                    }","sourceCodeStart":581,"sourceCodeEnd":617,"githubUrl":"https://github.com/stride3d/stride/blob/96fad776d210c221682aac1ccdf4c79dc046fc38/sources/presentation/Stride.Core.Presentation.Wpf/Controls/TreeView.cs#L581-L617","documentation":"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.","triggerScenarios":"Setting SelectionMode=\"Multiple\" in XAML on this TreeView, or assigning treeView.SelectionMode = SelectionMode.Multiple in code, which fires the property-changed callback.","commonSituations":"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.","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."],"exampleFix":"// before\n<controls:TreeView SelectionMode=\"Multiple\"/>\n// after\n<controls:TreeView SelectionMode=\"Extended\"/>","handlingStrategy":"validation","validationCode":"var mode = (SelectionMode)treeView.GetValue(controls:TreeView.SelectionModeProperty);\nif (mode == SelectionMode.Multiple)\n    throw new NotSupportedException(\"Multiple selection mode is unsupported by this TreeView\");","typeGuard":"bool IsSupportedSelectionMode(SelectionMode m) => m == SelectionMode.Single || m == SelectionMode.Extended;","tryCatchPattern":"try { treeView.SelectionMode = requested; }\ncatch (NotSupportedException ex) when (ex.Message.Contains(\"Multiple\")) { treeView.SelectionMode = SelectionMode.Extended; }","preventionTips":["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."],"tags":["wpf","treeview","selection-mode"],"backgroundTag":"unsupported-enum-value","analyzedSha":"96fad776d210c221682aac1ccdf4c79dc046fc38","analyzedAt":"2026-09-14T02:59:31.279Z","contentChangedAt":"2026-09-14T02:59:31.279Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}