【发布时间】:2011-03-01 20:50:23
【问题描述】:
我有一个简单的 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 中,我尝试将 ListBox 的 ItemsSource 绑定到该 ProjectList 属性。
像这样只绑定 ItemsSource 是行不通的:
<ListBox ItemsSource="{Binding ProjectList}" ItemTemplate="..." />
但是,如果我首先重新设置 DataContext 的基础,这可行:
<ListBox DataContext="{Binding ProjectList}" ItemsSource="{Binding}" ItemTemplate="..." />
第一种方法不应该正常工作吗?我可能做错了什么?
【问题讨论】:
-
您是同步还是异步从数据库中获取数据?
-
同步,如果它是一个竞争条件,那么第二种方法也不起作用......