Files

64 lines
1.8 KiB
C#
Raw Normal View History

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
}
}
}