55 lines
1.1 KiB
C#
55 lines
1.1 KiB
C#
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<ModuleItem> 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 });
|
|
}
|
|
|
|
|
|
|
|
}
|
|
} |