Quantcast
Channel: Xamarin.Forms — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 77050

Filter an ObservableCollection in XAMARIN

$
0
0

I'm trying to filter an ObservableCollection in Xamarin project but have problems. I have field "Checked" in my model Names which returns true or false. I need to get data where field "Checked" equals true.
My code looks like items = new ObservableCollection<Models.Names>(items.Where(w => w.Checked == true).ToList()) But I am getting error >! Unhandled Exception: System.ArgumentNullException: Value cannot be null. Parameter name: collection occurred
What I am missing? Hope for help.

Current code example.

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

     namespace Project.Mobile.Client.Portable.Views.Names
    {
        [XamlCompilation(XamlCompilationOptions.Compile)]
        public partial class NewPage : ContentPage
        {
            public ObservableCollection<Models.Names> items { get; set; }

    public NamesNewPage()
    {
        items = new ObservableCollection<Models.Names>(items.Where(w => w.Checked == true).ToList());
        this.BindingContext = this;
        InitializeComponent();

        // Disabling selection
        Lst.ItemSelected += (sender, e) => {
            ((ListView)sender).SelectedItem = null;
        };

        Lst.Refreshing += (sender, e) => {
            LoadUsersData();
        };
        LoadUsersData();
    }

    public async void LoadUsersData()
    {
        Lst.IsRefreshing = true;

        var names= await App.Database.Names.GetItemsAsync();
        items.Clear();


        foreach (var item in names)
            items.Add(item);

        Lst.IsRefreshing = false;
    }

    public async void OnItemTapped(object sender, ItemTappedEventArgs e)
    {
        NamesReadPage readPage = new NamesReadPage();
        readPage.BindingContext = e.Item as Models.Names;

        await Navigation.PushAsync(readPage);
    }
}

}


Viewing all articles
Browse latest Browse all 77050

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>