|
@@ -0,0 +1,38 @@
|
|
|
+using Avalonia.Collections;
|
|
|
+using IViewModel.Models;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Threading.Tasks;
|
|
|
+
|
|
|
+namespace IViewModel.ViewModels
|
|
|
+{
|
|
|
+ internal class LogViewModel:DisplayViewModelBase<IModel.IModel>
|
|
|
+ {
|
|
|
+ public AvaloniaList<IndexValueItemViewModel<LogItemViewModel>> Logs { get; } = new AvaloniaList<IndexValueItemViewModel<LogItemViewModel>>();
|
|
|
+ private LogViewModel()
|
|
|
+ {
|
|
|
+ ButtonVisibily = false;
|
|
|
+ GetEvent<Models.LogItemModel>().Subscrip((sender, args) =>
|
|
|
+ {
|
|
|
+ Tools.DispatherInovke.Inovke(() => Logs.Add(new IndexValueItemViewModel<LogItemViewModel>(Logs.Count + 1, new LogItemViewModel(args.Data.Message, args.Data.LogType))));
|
|
|
+ });
|
|
|
+ GetEvent(nameof(Models.LogItemModel)).Subscrip((sender, args) =>
|
|
|
+ {
|
|
|
+ if(args.Data.Length >=2 && args.Data[0] is string msg && args.Data[1] is LogType type)
|
|
|
+ {
|
|
|
+ AddLog(msg, type);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ static LogViewModel()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ public void AddLog(string msg,LogType logType = LogType.Info)
|
|
|
+ {
|
|
|
+ Tools.DispatherInovke.Inovke(() => Logs.Add(new IndexValueItemViewModel<LogItemViewModel>(Logs.Count + 1, new LogItemViewModel(msg, logType))));
|
|
|
+ }
|
|
|
+ public static LogViewModel Instance { get; } = new LogViewModel();
|
|
|
+ }
|
|
|
+}
|