Вопрос

Я пытаюсь привязать список к Listbox.И с помощью метода Button1Click новый экземпляр MyClass добавляется в мой список<>, но это не видно в моем списке.Там мой код:

       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;
                }
}

Это моя форма episode и ObjectDataProvider:

<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",
                            });
}

Что я делаю не так?

Это было полезно?

Решение

Вы должны использовать ObservableCollection<Node> вместо того , чтобы List<Node>. Наблюдаемая коллекция представляет собой общий динамический сбор данных, который предоставляет уведомления (с использованием интерфейса "INotifyCollectionChanged") когда элементы добавляются, удаляются или когда обновляется вся коллекция.Список не реализует INotifyCollectionChanged, какой интерфейс используется WPF ListBox для обновления пользовательского интерфейса.

видишь

  1. Наблюдаемая коллекция<(Из <(T>)>) Класс
  2. Введение в ObservableCollection в WPF
  3. Список против ObservableCollection против INotifyPropertyChanged в Silverlight
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top