From 9ce8e190a2a0f3c2bd9732abcdf2c3c71f60d919 Mon Sep 17 00:00:00 2001 From: Egor Date: Wed, 18 Mar 2026 23:16:07 +0200 Subject: [PATCH] Add settings func --- VisionAsist/ViewModels/MainWindowViewModel.cs | 16 ++++++- VisionAsist/ViewModels/SettingsViewModel.cs | 42 ++++++++++++++++++- VisionAsist/Views/MainWindow.axaml | 2 +- VisionAsist/Views/Settings.axaml | 18 +++++++- 4 files changed, 72 insertions(+), 6 deletions(-) diff --git a/VisionAsist/ViewModels/MainWindowViewModel.cs b/VisionAsist/ViewModels/MainWindowViewModel.cs index 348c556..b31f100 100644 --- a/VisionAsist/ViewModels/MainWindowViewModel.cs +++ b/VisionAsist/ViewModels/MainWindowViewModel.cs @@ -1,17 +1,29 @@ using System; using CommunityToolkit.Mvvm.ComponentModel; -using CommunityToolkit.Mvvm.Input; +using CommunityToolkit.Mvvm.Input; using VisionAsist.Models; +using VisionAsist.Views; + namespace VisionAsist.ViewModels; public partial class MainWindowViewModel : ViewModelBase { + [RelayCommand] + private void Settingse() + { + new Settings + { + DataContext = new SettingsViewModel() + }.Show(); + + } + [ObservableProperty] private bool isListening; [ObservableProperty] private string recognizedtext; private Action? _coreHandler; - + partial void OnIsListeningChanged(bool value) { if (value) diff --git a/VisionAsist/ViewModels/SettingsViewModel.cs b/VisionAsist/ViewModels/SettingsViewModel.cs index 8c5803f..8d16234 100644 --- a/VisionAsist/ViewModels/SettingsViewModel.cs +++ b/VisionAsist/ViewModels/SettingsViewModel.cs @@ -1,6 +1,44 @@ -namespace VisionAsist.ViewModels; +using System; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using System.Collections.ObjectModel; +namespace VisionAsist.ViewModels; +using System.IO; +using System.Linq; +public class ModuleItem +{ + public string Name { get; set; } + public IRelayCommand SettingsCommand { get; set; } +} public class SettingsViewModel : ViewModelBase { - + string Plugin = Path.Combine(AppContext.BaseDirectory, "Modules"); + public ObservableCollection Modules { get; } = new(); + + public SettingsViewModel() + { + string[] folderNames = new DirectoryInfo(Plugin) + .GetDirectories() + .Select(d => d.Name) + .ToArray(); + foreach (string folderName in folderNames) + { + AddModule(folderName); + } + } + + public void AddModule(string name) + { + Modules.Add(new ModuleItem + { + Name = name, + SettingsCommand = new RelayCommand(() => OpenSettings(name)) + }); + } + + private void OpenSettings(string moduleName) + { + Console.WriteLine($"Нажата кнопка модуля: {moduleName}"); + } } \ No newline at end of file diff --git a/VisionAsist/Views/MainWindow.axaml b/VisionAsist/Views/MainWindow.axaml index f6a3159..7876ad4 100644 --- a/VisionAsist/Views/MainWindow.axaml +++ b/VisionAsist/Views/MainWindow.axaml @@ -16,7 +16,7 @@ -