Почему моя привязка WPF не работает?
-
20-09-2019 - |
Вопрос
Я пытаюсь привязать список к 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 для обновления пользовательского интерфейса.
видишь
Не связан с StackOverflow