Доступ к свойству ViewModel через Model
Мне необходимо после каждого логирования выводить лог в ListView и для этого я создал свойство Logs в своем ViewModel, но логирование происходит в Model
У меня есть так себе предположение как это сделать: сделать свойство Logs статическим и обращаться к нему в том месте, где я делаю логирование, но я понимаю, что это плохая идея т.к мне надо будет из другого потока обращаться к Logs, что вызывает трудности, помимо этого мне кажется неправильным, что я должен буду менять ViewModel внутри Model. Как мне правильно организовать этот момент?
class MainViewModel : BaseViewModel
{
public ObservableCollection<string> Logs { get; set; }
//code
}
class Scaner
{
public async Task<bool> Scan()
{
FileLogger.Log("Поиск новых файлов..."); //этот текст должен добавиться в свойство Logs у ViewModel
if(files.Count() > 0)
{
FileLogger.Log("Файлы найдены, отправляю контрагенту"); //этот текст должен добавиться в свойство Logs у ViewModel
//await всякие действия
}
else
FileLogger.Log("Файлы не обнаружены"); //этот текст должен добавиться в свойство Logs у ViewModel
}
}
И есть xaml MainWindow
<Window.DataContext>
<vm:MainViewMode></vm:MainViewModel>
</WindowDataContext>
<ListView ItemsSource = "{Binding Logs}" >