Ich habe eine einfache Ansichtsmodell wie:XAML auf eine Eigenschaft Collection Bindung an einem Ansichtsmodell
public class MainViewModel {
ObservableCollection<Project> _projects;
public MainViewModel() {
// Fill _projects from DB here...
ProjectList.Source = _projects;
ProjectList.Filter = ...;
}
public CollectionViewSource ProjectList { get; set; }
}
ich das Fenster des Datacontext auf eine neue Instanz dieser Ansichtsmodell im Konstruktor gesetzt:
public MainWindow() {
this.DataContext = new MainViewModel();
}
Dann Im Xaml versuche ich, die ItemsSource einer ListBox an diese ProjectList-Eigenschaft zu binden.
Bindung nur Itemssource wie funktioniert so nicht funktionieren:
<ListBox ItemsSource="{Binding ProjectList}" ItemTemplate="..." />
Aber wenn ich zuerst die Datacontext rebase dies funktioniert:
<ListBox DataContext="{Binding ProjectList}" ItemsSource="{Binding}" ItemTemplate="..." />
Sollte nicht das erste richtig Methode? Was könnte ich falsch machen?
Erhalten Sie Ihre Daten synchron oder asynchron aus der Datenbank? – Timores
synchron, neben wenn es eine Race Condition war, dann würde auch die zweite Methode nicht funktionieren ... – joshperry