Files
2025-05-04 10:21:23 +08:00

64 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using linesider_screen_bankend.Core.Mvvm;
using linesider_screen_bankend.Modules.ModuleName.Event;
using linesider_screen_bankend.Services.Interfaces;
using Prism.Events;
using Prism.Regions;
namespace linesider_screen_bankend.Modules.ModuleName.ViewModels
{
public class CommonLogViewModel : RegionViewModelBase
{
private readonly IEventAggregator _eventAggregator;
private SubscriptionToken _token;
private ILogService _logService;
private string _logMessage;
public string LogMessage
{
get { return _logMessage; }
set { SetProperty(ref _logMessage, value); }
}
public CommonLogViewModel(IRegionManager regionManager,
ILogService logService,
IEventAggregator eventAggregator) : base(regionManager)
{
_eventAggregator = eventAggregator;
// 订阅事件使用UI线程处理保持强引用
_token = _eventAggregator.GetEvent<CommonLogEvent>()
.Subscribe(OnLogReceived, ThreadOption.UIThread, true);
LogMessage = logService.GetInitMessage();
_logService = logService;
}
private void OnLogReceived(string message)
{
LogMessage += $"{DateTime.Now}: {message}\n";
_logService.AddMessage(message); // 使用日志服务记录
}
public void Destroy()
{
_token?.Dispose();
}
public void AddLogMessage()
{
_logService.AddMessage("123");
}
public override void OnNavigatedTo(NavigationContext navigationContext)
{
//do something
}
}
}