Bonjour,

D'après mon titre ça paraît simple, mais ça ne m'a pas empêché de tourner en rond pendant des lustres sans y arriver!

J'ai un DataGrid qui s'affiche dans une fenêtre en XAML sous Visual Studio 2010, et je voudrais que, lorsque je clique sur un bouton spécifique de la même fenêtre, le contenu d'une TextBox toujours dans la même fenêtre soit ajouté à la DataGrid et s'affiche en temps réel.

J'ai pas mal creusé les notions de delegate, évènements et consorts sur Internet et les cours et tutoriels C#, mais je n'arrive pas à structurer les notions acquises pour ce faire!

Voici mon code:

MainWindow.xaml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 <DataGrid ItemsSource="{Binding myMessageList}" AutoGenerateColumns="False" Name="TextHistory"/>
MainWindow.xaml.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
private void ClicSurLeBouton(object sender, RoutedEventArgs e)
{
        myMessageList.AddMessage(MaTextBox.Text);
}
MessageList.cs
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
 
    class MessageList : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged; //Pas compris à quoi ça sert...
 
        public delegate void MessageChangeDelegate(ObservableCollection<String> s);
        public event MessageChangeDelegate myMessageChangeDelegate;
 
public void AddMessage(String s)
        {
            messages.Add(s);
            if (myDelegate != null)
            {
                myMessageChangeDelegate(messages);
            }
        }
Avec ce code, les changements dans la DataGrid ne s'affichent pas quand je clique sur le bouton, mais je n'ai aucune erreur. Pouvez-vous me dépanner?

Merci d'avance.