using System; using System.Reflection; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using System.Collections.ObjectModel; using VisionAsist.Models; using VisionAsist.SDK; using System.IO; using System.Linq; namespace VisionAsist.ViewModels; public class ModuleItem { public string Name { get; set; } public IRelayCommand SettingsCommand { get; set; } } public class SettingsViewModel : ViewModelBase { public ObservableCollection Modules { get; } = new(); public SettingsViewModel() { foreach (var module in Core.ModuleList) { AddModule(module.Name); } } public void AddModule(string name) { Modules.Add(new ModuleItem { Name = name, SettingsCommand = new RelayCommand(() => OpenSettings(name)) }); } private void OpenSettings(string moduleName) { var module = Core.ModuleList.FirstOrDefault(m => m.Name == moduleName); if (module != null) { module.Module.Settings(new object[] { this }); } } }