Bonjour ! Chers lecteurs plus adroits que moi, peut-être pourriez vous m'aider.
J'ai une question/un problème :
J'ai un TextBox dans lequel mon utilisateur est sensé rentrer un chemin vers un fichier :
XAML :
<TextBox Grid.Column="0" Grid.Row="1" Text="{Binding FilePath, UpdateSourceTrigger=PropertyChanged}" Margin="5, 0" />
C# :
/// <summary>
/// Gets or sets the filePath
/// </summary>
public string FilePath
{
get
{
return this._filePath;
}
set
{
this._filePath = value;
this.RaisePropertyChanged(() => this.FilePath);
this.UpdateMessageCommand.RaiseCanExecuteChanged();
if (!this.MessageCanBeUpdated())
{
this.Message = string.Empty;
}
}
}
Puis un bouton sur lequel ce dernier clique quand il a rentré le chemin :
<Button
Grid.Column="1"
Grid.Row="1"
Content="Valider"
Margin="5, 0"
Command="{Binding UpdateMessageCommand, Mode=TwoWay}" />
Ce bouton active la méthode déléguée "UpdateMessageCommand :
C#:
/// <summary>
/// Gets or sets the update message command.
/// </summary>
public DelegateCommand UpdateMessageCommand { get; set; }
Qui "lance" la méthode "UpdateMessage"
C#:
private void UpdateMessage()
{
this.OcLogs = fileProvider.LineByLineReading(this.FilePath);
Console.WriteLine("OCLOGS COUNT = " + OcLogs.Count);
this.Message = "Chemin du fichier : " + this.FilePath;
fileProvider.LineByLineReading(this.FilePath);
}
OcLogs est une ObservableCollection, et la méthode "fileProvider.LineByLineReading(filePath)" prend un chemin de fichier en paramètre, le lis ligne par ligne, génère un objet "Log" à chaque ligne, et ajoute cet objet Log à une ObservableCollection que la méthode finit par renvoyer à a fin.
Jusque là pas de problèmes, j'obtiens bien une ObservableCollection à partir de mon chemin : lorsque je fais "count" sur la collection, le resultat correspond bien à ce que j'attends (le nombre d'objets est égal au nombre de ligne du fichier. Facile.)
Là ou ça se complique, c'est que je voudrais afficher le contenu de cette collection dans une ComboBox.
Comme ma collection est remplie, je pensais qu'un simple :
<ComboBox Grid.Column="0" Grid.Row="2" ItemsSource="{Binding OcLogs}" DisplayMemberPath="Session" Margin="5,0" />
suffirait, mais apparemment non...
Quelqu'un à une idée de ce que je pourrais faire?
Merci d'avance!
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI
Merci d'y penser dans tes prochains messages. |