Bonjour
Je réalise en ce moment un utilitaire permettant de diagnostiquer les problèmes d'une application. Dans cet perspective, on dispose d'une collection (ObservableCollection) de tests à réaliser, avec un affichage dynamique des résultats au fur et à mesure que ceux ci tombent (ils s'exécutent dans un Thread parallèle). Niveau interface, j'ai une listview contenant les tests à réaliser, et un listbox qui doit contenir le log de mes tests. Mon souci se situe au niveau du binding entre cette dernière et les logs proprement dits.
La classe décrivant les tests s'organise ainsi :
TestResult me permet d'afficher le résultat de mes tests dans la listview, TestLog va collecter les sorties log au fur et a mesure de l'avancement du traitement, et LogAsString va permettre d'en faire une String exploitable pour l'affichage pour l'utilisateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 abstract public class Test : ITestDiagnosticTool, INotifyPropertyChanged { #region Attributs private List<string> _testLog = new List<string>(); private EtatTest _testResult = EtatTest.Pending; public enum EtatTest { True, False, Pending }; #endregion #region Proprietes public EtatTest TestResult { get { return _testResult; } set { RaisePropertyChanged("TestResult"); _testResult = value; } } public List<string> TestLog { get { return _testLog; } set { RaisePropertyChanged("TestLog"); _testLog = value; } } public string LogAsString { get { StringBuilder sb = new StringBuilder(); foreach (var l in TestLog) { sb.AppendLine(l); } return sb.ToString(); } } #endregion // ... méthodes de traitement ... public event PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(String propertyName){ if (PropertyChanged != null){ PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } }
Mon souci, c'est que je n'arrive pas à lier le contenu du listbox avec la propriété LogAsString ou TestLog ni à faire en sorte que l'affichage se mette à jour dès que le log est modifié.
Edit : je n'ai pas mis le code du ListBox car il est atm vide, à force de tester et de supprimer, il ne reste que les balises d'ouverture et de fermeture ^^
Partager