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