using CommunityToolkit.Mvvm.ComponentModel; using Mini8SlaveSim.Services; using Mini8SlaveSim.Views; using System.Collections.ObjectModel; using System.Windows.Controls; namespace Mini8SlaveSim.ViewModels { public partial class WorkAreaViewModel : ObservableObject { private readonly ISlaveManagementService _slaveManagementService; [ObservableProperty] private ObservableCollection _tabs = []; [ObservableProperty] private int _selectedTabIndex = -1; public WorkAreaViewModel(ISlaveManagementService slaveManagementService) { _slaveManagementService = slaveManagementService; _slaveManagementService.SlaveAdded += OnSlaveAdded; } private void OnSlaveAdded(object? sender, byte e) { App.Current.Dispatcher.Invoke(() => { Tabs.Add(new TabItem() { Header = $"Slave ID:{e}", Content = new Mini8Tab() }); SelectedTabIndex = 0; }); } } }