У меня есть простая ViewModel вроде:
public class MainViewModel {
ObservableCollection<Project> _projects;
public MainViewModel() {
// Fill _projects from DB here...
ProjectList.Source = _projects;
ProjectList.Filter = ...;
}
public CollectionViewSource ProjectList { get; set; }
}
Я установил окно DataContext в новый экземпляр этого ViewModel в конструкторе:
public MainWindow() {
this.DataContext = new MainViewModel();
}
Затем в Xaml я пытаюсь связать ItemSource ListBox с этим свойством ProjectList.
Связывание просто ItemsSource, как это не работает:
<ListBox ItemsSource="{Binding ProjectList}" ItemTemplate="..." />
Но если я сначала переустанавливаю DataContext, это работает:
<ListBox DataContext="{Binding ProjectList}" ItemsSource="{Binding}" ItemTemplate="..." />
Не должен ли первый метод работать правильно? Что я могу делать неправильно?