相关疑难解决方法(0)

XAML绑定到ViewModel上的CollectionViewSource属性

我有一个简单的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)

第一种方法不应该正常工作吗?我可能做错了什么?

wpf xaml binding

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

binding ×1

wpf ×1

xaml ×1