Извините, что, возможно, немой вопрос, я попытался найти что-то на эту тему, но ничего не получил.Реализовать filecounter с mvvm light
Итак, я получил приложение магазина Windows UWP, используя MVVM Light и SQLite.Net, который добавляет некоторые файлы в базу данных. Я хотел бы, чтобы следить за количеством файлов, добавленных в базу данных, поэтому я создал класс и статическое поле для него:
public class Vars : ObservableObject
{
public static Counter MyCounter = new Counter() { SongCounter = 0 };
}
public class Counter : ObservableObject
{
private int songCounter;
public int SongCounter
{
get { return songCounter; }
set
{
songCounter = value;
RaisePropertyChanged();
}
}
}
В Dataservice
класса, который предоставляет методы для подключения к базе данных я использовал myCounter
для подсчитать количество добавленных файлов, например:
public class Dataservice
{
public static void RebuildLibrary()
{
//getting fileList
foreach(var file in fileList)
{
//doing some stuff here
Vars.MyCounter.SongCounter++
}
}
}
(Следует также отметить, что эта часть работы - MyCounter
действительно увеличивает) И, наконец, есть поле в MainViewModel
называется CounterText
, что переплетены в XAML:
private string counterText;
public string CounterText
{
get { return counterText; }
set
{
counterText = value;
RaisePropertyChanged();
}
}
Немой вопрос - как связать MyCounter
с CounterText
? Я попытался установить
CounterText = Vars.MyCounter.SongCounter.ToString();
в MainViewModel
конструктору, но это не получать обновления. Должен ли я использовать Messenger для отправки CounterText
некоторых уведомлений? Или я совершенно неправ, и есть более простой способ достичь моей цели? :)
К сожалению, я не могу использовать 'fileList.Count()', потому что я хотел бы показать прогресс. Например, если у меня есть 5000 объектов для вставки в базу данных, я хотел бы посмотреть, сколько файлов фактически добавлено, чтобы понять, сколько их осталось.Что касается 'RaisePropertyChanged'' CounterText' - это просто не срабатывает с моей старой конструкцией. Я постараюсь использовать ваши и посмотреть, что произойдет :) –