コード例 #1
0
        public void Refresh()
        {
            AllSeaCreatures.Clear();
            SeaCreatures.Clear();
            GetSeaCreatures();

            SelectedSeaCreature = null;
        }
コード例 #2
0
        public async void GetSeaCreatures()
        {
            AllSeaCreatures = await Repo.GetSeaCreatures();

            foreach (SeaCreature sc in AllSeaCreatures)
            {
                SeaCreatures.Add(sc);
            }
        }
コード例 #3
0
        public void PerformFiltering()
        {
            if (_filter == null)
            {
                _filter = "";
            }
            //If _filter has a value (ie. user entered something in Filter textbox)
            //Lower-case and trim string
            var lowerCaseFilter = Filter.ToLowerInvariant().Trim();

            //Use LINQ query to get all personmodel names that match filter text, as a list
            var result =
                AllSeaCreatures.Where(n => n.name.ToLowerInvariant()
                                      .Contains(lowerCaseFilter))
                .ToList();

            //Get list of values in current filtered list that we want to remove
            //(ie. don't meet new filter criteria)
            var toRemove = SeaCreatures.Except(result).ToList();

            //Loop to remove items that fail filter
            foreach (var note in toRemove)
            {
                SeaCreatures.Remove(note);
            }

            var resultCount = result.Count;

            // Add back in correct order.
            for (int i = 0; i < resultCount; i++)
            {
                var resultItem = result[i];
                if (i + 1 > SeaCreatures.Count || !SeaCreatures[i].Equals(resultItem))
                {
                    SeaCreatures.Insert(i, resultItem);
                }
            }
        }