【问题标题】:xaml: How to bind CollectionViewSource to a collection of local-instance of class?xaml:如何将 CollectionViewSource 绑定到类的本地实例集合?
【发布时间】:2014-08-06 12:33:08
【问题描述】:

我有一个名为 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

【问题讨论】:

    标签: c# wpf xaml collectionview


    【解决方案1】:

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

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

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

    【讨论】:

    • 我正在使用 ICollectionView 对播放列表列表进行排序 (ObservableCollection PlayLists)。
    猜你喜欢
    • 2017-01-23
    • 2015-01-29
    • 2021-07-10
    • 2018-10-13
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多