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.
不确定通过在Task类上实现ICollectionView想要实现什么。
但对于您的问题,您需要在绑定中指定Path
以绑定到属性PlayLists:
Source="{Binding Path=PlayLists, Source={StaticResource mtask}}"