using System.Collections.Generic; using CommunityToolkit.Mvvm.ComponentModel; namespace Ursa.Demo.ViewModels; public partial class TreeComboBoxDemoViewModel: ObservableObject { [ObservableProperty] private TreeComboBoxItemViewModel? _selectedItem; public List Items { get; set; } public TreeComboBoxDemoViewModel() { Items = new List() { new TreeComboBoxItemViewModel() { ItemName = "Item 1", Children = new List() { new TreeComboBoxItemViewModel() { ItemName = "Item 1-1 (Not selectable)", IsSelectable = false, Children = new List() { new TreeComboBoxItemViewModel() { ItemName = "Item 1-1-1" }, new TreeComboBoxItemViewModel() { ItemName = "Item 1-1-2" } } }, new TreeComboBoxItemViewModel() { ItemName = "Item 1-2" } } }, new TreeComboBoxItemViewModel() { ItemName = "Item 2", Children = new List() { new TreeComboBoxItemViewModel() { ItemName = "Item 2-1 (Not selectable)", IsSelectable = false, }, new TreeComboBoxItemViewModel() { ItemName = "Item 2-2" } } }, new TreeComboBoxItemViewModel() { ItemName = "Item 3" }, }; } } public partial class TreeComboBoxItemViewModel : ObservableObject { [ObservableProperty] private string? _itemName; [ObservableProperty] private bool _isSelectable = true; public List Children { get; set; } = new (); }