using System; using System.Collections.ObjectModel; using CommunityToolkit.Mvvm.ComponentModel; namespace CrossLangDevStudio.ViewModels; public partial class TabItemViewModel : ObservableObject { [ObservableProperty] private string _header = ""; public ViewModelBase? Body { get; set; } public override string ToString() => Header; public void Save() { if (Body is ISavable savable) { savable.Save(); } } }