質問

リストをリストボックスにバインドしようとしています。そして、Button1Click メソッドで、MyClass の新しいインスタンスが List<> に追加されますが、リストボックスには表示されません。そこに私のコードがあります:

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

それは私のフォームエピソードと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 が UI を更新するために使用します。

見る

  1. ObservableCollection<(Of <(T>)>) クラス
  2. WPF の ObservableCollection の概要
  3. Silverlight でのリストと ObservableCollection と INotifyPropertyChanged
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top