BOB/BOB/ViewModels/LogAreaViewModel.cs
2025-11-11 13:29:56 +08:00

41 lines
1.0 KiB
C#

using Logger;
using Prism.Mvvm;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Media;
using System.Windows.Threading;
namespace BOB.ViewModels
{
public class LogAreaViewModel : BindableBase
{
// 日志集合
private ObservableCollection<LogItem> _logs = new();
public ObservableCollection<LogItem> Logs
{
get => _logs;
set => SetProperty(ref _logs, value);
}
public LogAreaViewModel()
{
LoggerHelper.LogAdded += OnLogAdded;
}
// 方便外部添加日志
public void OnLogAdded(string message, string color)
{
var brush = (Brush)new BrushConverter().ConvertFromString(color);
Application.Current.Dispatcher.Invoke(() => Logs.Add(new LogItem { Message = message, Color = brush }));
}
}
// 日志条目类
public class LogItem
{
public string Message { get; set; }
public Brush Color { get; set; } = Brushes.Black;
}
}