Frage

ich versuche Liste Listbox zu binden. Und am Button1Click Methode neue Instanz von MyClass fügt in meiner Liste <>, aber das ist nicht sichtbar in meinem Listbox. Es mein Code:

       public static class NotesEngine
            {
                public static List<Note> All;

                static NotesEngine()
                {
                    All = new List<Note>
                              {
                                  new Note
                                      {
                                          Content = "test1",
                                      }
                              };
                }

                public static List<Note> GetNotes()
                {
                    return All;
                }
}

Es ist meine Form Folge und Object:

<ObjectDataProvider ObjectType="{x:Type NotesEngine}" x:Key="NotesList" MethodName="GetNotes"/>

......

<TabItem Header="test" DataContext="{Binding Source={StaticResource NotesList}}">

                <ListBox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
                         ItemTemplate="{StaticResource NotesListBoxDataTemplate}"
                         ItemsSource="{Binding }">
                </ListBox>
</TabItem>

private void button2_Click(object sender, RoutedEventArgs e)
{
    NotesEngine.All.Add(new Note
                            {
                                Content = "xx",
                                Images = new List<string>(),
                                LastEdit = DateTime.Now,
                                Title = "XASAC",
                            });
}

Was ich falsch gemacht?

War es hilfreich?

Lösung

Sie sollten ObservableCollection<Node> anstelle von List<Node>. ObservableCollection ist eine allgemeine dynamische Datenerfassung, die Benachrichtigungen (unter Verwendung einer Schnittstelle „INotifyCollectionChanged“) bereitstellt, wenn Elemente hinzugefügt bekommen, entfernt oder wenn die ganze Sammlung aufgefrischt wird. Liste nicht implementiert INotifyCollectionChanged, die Schnittstelle von WPF ListBox Update UI verwendet wird.

sehen

  1. ObservableCollection <(Of <(T>)>) Klasse
  2. eine Einführung in die ObservableCollection in WPF
  3. Liste vs ObservableCollection vs INotifyPropertyChanged in Silverlight
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top