Sorry für vielleicht dumme Frage, ich habe versucht, etwas zu diesem Thema zu finden, aber hatte nichts im Ergebnis.Dateicounter mit mvvm Licht implementieren
Also habe ich die UWP Windows Store App mit MVVM Light und SQLite.Net, die einige Dateien in der Datenbank hinzugefügt. Ich möchte den Überblick über Anzahl der Dateien zur Datenbank hinzugefügt halten, also habe ich eine Klasse und statische Feld für sie erstellt:
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();
}
}
}
In der Dataservice
Klasse, die ich myCounter
verwendeten Methoden für die Datenbankverbindung bereitstellt zählen die Anzahl der hinzugefügten Dateien, wie folgt aus:
public class Dataservice
{
public static void RebuildLibrary()
{
//getting fileList
foreach(var file in fileList)
{
//doing some stuff here
Vars.MyCounter.SongCounter++
}
}
}
(sollte auch beachten, dass dieser Teil funktioniert - MyCounter
wirklich erhöht) Und schließlich das Feld in der CounterText
genannt MainViewModel
es, die XAML binded ist:
private string counterText;
public string CounterText
{
get { return counterText; }
set
{
counterText = value;
RaisePropertyChanged();
}
}
Die dumme Frage ist - wie MyCounter
mit CounterText
zu binden? Ich habe versucht,
CounterText = Vars.MyCounter.SongCounter.ToString();
im MainViewModel
Konstruktor gesetzt, aber es ist nicht immer aktualisiert. Sollte ich Messenger verwenden, um CounterText
einige Benachrichtigungen zu senden? Oder liege ich völlig falsch und es gibt einen einfacheren Weg, um mein Ziel zu erreichen? :)
Leider kann ich 'fileList.Count()' nicht verwenden, weil ich den Fortschritt anzeigen möchte. Wenn ich beispielsweise 5000 Objekte in die Datenbank einfügen möchte, würde ich gerne sehen, wie viele Dateien tatsächlich hinzugefügt werden, um zu verstehen, wie viele noch übrig sind.Wie für die 'RaisePropertyChanged' von' CounterText' - es ist einfach nicht mit meiner alten Konstruktion Feuer. Ich werde versuchen, deins zu benutzen und zu sehen, was passiert :) –