Arbeiten an einer Anwendung, die einige Dateien überwachen und bei Dateiänderung, zeigen Sie, dass für jede Datei im neuen Fenster ändern.Programmatisch neue Fenster öffnen und regelmäßig aktualisieren
Sobald der Benutzer die zu überwachende Datei auswählt, sollte beim Klicken auf die Schaltfläche ein neues Fenster geöffnet werden. Im Hintergrund trigger ich FileSystemWatcher
, um diese Datei auf Änderungen zu beobachten. Sobald die Änderung passiert, muss ich dieses neu geöffnete Fenster (mit Textfeld) mit einigen Informationen aktualisieren.
Ich habe bereits neues Window1 (Projekt -> Fenster hinzufügen -> Fenster (WPF)) eingerichtet. Der Rest des Codes sieht wie folgt aus:
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = current_log.FullName.Substring(0, current_log.FullName.LastIndexOf('\\'));
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = current_log.Name;
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
//check if window is already active
//????
//open new window
Window1 log_window = new Window1();
log_window.Show();
log_window.txt_log_window_messages.AppendText("ddd\n");
Fragen:
- Wie überprüfen, ob diese Datei bereits ein Monitorfenster aktiv ist, um es nicht wieder zu öffnen?
- Wie zu identifizieren, in welchem Fenster ich Textbox in
OnChanged()
Funktion aktualisieren sollte?
Sie könnten ein Wörterbuch – BugFinder
Verwenden Hashtable \ Wörterbuch mit Filename als Schlüssel, und Window-Instanz als Wert haben. – AnjumSKhan
Ich liebe einfache Lösungen, danke euch beiden! – SubjectX