xaml:如何将CollectionViewSource绑定到类的本地实例的集合

本文关键字:集合 实例 绑定 CollectionViewSource xaml | 更新日期: 2023-09-27 18:16:43

我有一个名为Tasks.cs:的类

namespace Player_beta.ViewModels
{
    public class Tasks : ICollectionView
    {
        private ICollectionView _customerView;
        public ICollectionView Customers
        {
            get { return _customerView; }
        } 
    public ObservableCollection<PlaylistVM> PlayLists
    {
        get { return _playLists; }
        set { _playLists = value; }
    }
//etc

在我的Window1.xaml中,我写道:

xmlns:local="clr-namespace:Player_beta.ViewModels;assembly="

然后,我尝试创建Tasks.cs的本地实例,并访问其PlayLists属性,但失败了:

    <Window.Resources>
            <local:Tasks x:Key="mtask"/>
            <CollectionViewSource Source="{StaticResource mtask.PlayLists}" x:Key="customerView">
                <CollectionViewSource.SortDescriptions>
                    <scm:SortDescription PropertyName="plNAME"/>
                </CollectionViewSource.SortDescriptions>
            </CollectionViewSource>
        </Window.Resources>
........................
 <ListBox DisplayMemberPath="plNAME" ItemsSource="{Binding Source={StaticResource customerView}}" />

我知道我可以在Window1.xaml.cs中创建Tasks.cs的实例然后将其绑定到Window1的DataContext,但其DataContext已绑定到另一个类的实例-PlayerVM.cs.

xaml:如何将CollectionViewSource绑定到类的本地实例的集合

不确定通过在Task类上实现ICollectionView想要实现什么。

但对于您的问题,您需要在绑定中指定Path以绑定到属性PlayLists:

Source="{Binding Path=PlayLists, Source={StaticResource mtask}}"