无法访问CollectionViewSource.GetDefaultView和ICollectionView.Filter

时间:2015-11-09 14:24:12

标签: c# xaml windows-phone collectionviewsource icollectionview

您好我正在尝试使用CollectionViewSource和ICollectionView过滤ListBox但我无法访问它们。该定义没有上述属性。知道为什么吗?我正在开发基于Windows的通用应用程序。

我的目标是按照文本框中输入的文字过滤列表框。

提前感谢您的帮助

XAML

 <TextBox x:Name="txtSearch"/>
 <ListBox x:Name="lbCustomers">

XAML.cs

 public MainPage()
    {
        this.InitializeComponent();
        customerList = new List<string>();
        customerList.Add("Andrew");
        customerList.Add("bravo");
        customerList.Add("Carol");
        customerList.Add("Dela");
        customerList.Add("Eva");
        customerList.Add("family");
        customerList.Add("George");
        customerList.Add("Health");
        customerList.Add("Illa");
        customerList.Add("Jack");
        customerList.Add("Andrew");
        lbCustomers.ItemsSource = customerList;

        //llectionViewSource collectionViewSource = new CollectionViewSource();
        //ollectionViewSource.Source = customerList;
        //ollectionView collectionView = collectionViewSource.View;

        ICollectionView view = CollectionViewSource.GetDefaultView(customerList);

        view.Filter = obj =>
        {
            string item = obj as string;
            return (item.ToLower().Contains(YourFilter));
        };
    }

CollectionViewSource的元数据

public sealed class CollectionViewSource : DependencyObject, ICollectionViewSource
{
    public CollectionViewSource();

    public static DependencyProperty IsSourceGroupedProperty { get; }
    public static DependencyProperty ItemsPathProperty { get; }
    public static DependencyProperty SourceProperty { get; }
    public static DependencyProperty ViewProperty { get; }
    public System.Boolean IsSourceGrouped { get; set; }
    public PropertyPath ItemsPath { get; set; }
    public System.Object Source { get; set; }
    public ICollectionView View { get; }
}

0 个答案:

没有答案