我有一个简单的ViewModel,如:
public class MainViewModel {
ObservableCollection<Project> _projects;
public MainViewModel() {
// Fill _projects from DB here...
ProjectList.Source = _projects;
ProjectList.Filter = ...;
}
public CollectionViewSource ProjectList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我将窗口的DataContext设置为构造函数中该ViewModel的新实例:
public MainWindow() {
this.DataContext = new MainViewModel();
}
Run Code Online (Sandbox Code Playgroud)
然后在Xaml中,我试图将ListBox的ItemsSource绑定到该ProjectList属性.
像这样绑定ItemsSource是行不通的:
<ListBox ItemsSource="{Binding ProjectList}" ItemTemplate="..." />
Run Code Online (Sandbox Code Playgroud)
但是,如果我首先重新定义DataContext,它的工作原理如下:
<ListBox DataContext="{Binding ProjectList}" ItemsSource="{Binding}" ItemTemplate="..." />
Run Code Online (Sandbox Code Playgroud)
第一种方法不应该正常工作吗?我可能做错了什么?
Jos*_*ant 18
如果您使用的是CollectionViewSource需要绑定ItemsSource到ProjectList.View代替ProjectList.那应该可以解决你的问题.
| 归档时间: |
|
| 查看次数: |
16138 次 |
| 最近记录: |