Ich habe ein einfaches ViewModel wie:
public class MainViewModel {
ObservableCollection<Project> _projects;
public MainViewModel() {
// Fill _projects from DB here...
ProjectList.Source = _projects;
ProjectList.Filter = ...;
}
public CollectionViewSource ProjectList { get; set; }
}
Ich setze den DataContext des Fensters auf eine neue Instanz des ViewModel im Konstruktor:
public MainWindow() {
this.DataContext = new MainViewModel();
}
Dann in der Xaml versuche ich, die ItemsSource einer ListBox an diese ProjectList-Eigenschaft zu binden.
Einfach nur ItemsSource zu binden, funktioniert nicht:
<ListBox ItemsSource="{Binding ProjectList}" ItemTemplate="..." />
Aber wenn ich zuerst den DataContext neu basiere, funktioniert es:
<ListBox DataContext="{Binding ProjectList}" ItemsSource="{Binding}" ItemTemplate="..." />
Sollte die erste Methode nicht richtig funktionieren? Was könnte ich falsch machen?