Files
Vision/VisionAsist/ViewModels/MainWindowViewModel.cs
2026-03-18 23:16:07 +02:00

57 lines
1.3 KiB
C#

using System;
using CommunityToolkit.Mvvm.ComponentModel;
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<string>? _coreHandler;
partial void OnIsListeningChanged(bool value)
{
if (value)
{
Core.StartListing();
// Сохраняем ссылку на обработчик
_coreHandler = word =>
{
Avalonia.Threading.Dispatcher.UIThread.Post(() =>
{
Recognizedtext = Core.TextAsist;
});
};
Core.triger.OnRecognized += _coreHandler;
}
else
{
Core.StopListing();
// Правильная отписка
if (_coreHandler != null)
{
Core.triger.OnRecognized -= _coreHandler;
_coreHandler = null;
}
}
}
}