WPF绑定ViewModel

sLw*_*sLw 0 c# wpf mvvm

因此,我目前正在尝试通过MVVM学习WPF,并且正在在线关注一些教程。现在,我有一个简单的项目,我尝试自己进行操作,但是以某种方式ListBox仍然为空。我认为它并没有绑定到ViewModel。我在这里想念什么?

ViewModel:

public class PersonViewModel
{
    ObservableCollection<Person> Personen { get; set; } = new ObservableCollection<Person>();

    public PersonViewModel()
    {
        Personen.Add(new Person { Vorname = "My", Nachname = "Name", Email = "my@name.com" });
        Personen.Add(new Person { Vorname = "Max", Nachname = "Mustermann", Email = "max@mustermann.de" });
        Personen.Add(new Person { Vorname = "John", Nachname = "Doe", Email = "john@doe.com" });
        Personen.Add(new Person { Vorname = "Jane", Nachname = "Doe", Email = "jane@doe.com" });
    }
}
Run Code Online (Sandbox Code Playgroud)

}

另外,我将DataContext设置如下:

public PersonenView()
{
    InitializeComponent();
    this.DataContext = new ViewModel.PersonViewModel();
}
Run Code Online (Sandbox Code Playgroud)

小智 5

您只需要在ViewModel中为ObservableCollection Personen提供公共访问器。

您还应该将属性设置为只读(或从设置程序中触发属性更改通知):

public ObservableCollection<Person> Personen { get; }
    = new ObservableCollection<Person>();
Run Code Online (Sandbox Code Playgroud)