using System;
using System.Collections.Generic;
using System.Linq;
using ListExcercises.Models;
namespace ListExcercises.Services
{
public class SearchServices
{
private List _searches = new List
{
new Search
{
Id = 1,
Location = "West Hollywood, CA, United States",
CheckIn = new DateTime(2016, 9, 1),
CheckOut = new DateTime(2016, 11, 1)
},
new Search
{
Id = 2,
Location = "Santa Monica, CA, United States",
CheckIn = new DateTime(2016, 9, 1),
CheckOut = new DateTime(2016, 11, 1)
}
};
public IEnumerable GetRecentSearches(string filter = null)
{
if (String.IsNullOrWhiteSpace(filter))
return _searches;
return _searches.Where(s => s.Location.StartsWith(filter, StringComparison.CurrentCultureIgnoreCase));
}
public void DeleteSearch(int searchId)
{
_searches.Remove(_searches.Single(s => s.Id == searchId));
}
}
}
< /code>
Код для представления выглядит следующим образом: < /p>
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using ListExcercises.Models;
using ListExcercises.Services;
using Xamarin.Forms;
namespace ListExcercises
{
public partial class ExcerciseListPage : ContentPage
{
private SearchServices _searchService;
private List _searchGroups;
public ExcerciseListPage()
{
_searchService = new SearchServices();
InitializeComponent();
PopulateListView(_searchService.GetRecentSearches());
}
// Create re-usable list grouping(populate list)
private void PopulateListView(IEnumerable searches)
{
_searchGroups = new List
{
new SearchGroup("Recent Searches", searches)
};
listView.ItemsSource = _searchGroups;
}
void onItemTap(object sender, Xamarin.Forms.ItemTappedEventArgs e)
{
var search = e.Item as Search;
DisplayAlert("Tapped",
"Customer visited " + search.Location + " at " + search.CheckIn + " and left at " + search.CheckOut,
"OK");
}
void listView_ItemSelected(System.Object sender, Xamarin.Forms.SelectedItemChangedEventArgs e)
{
listView.SelectedItem = null;
}
void Delete_Clicked(System.Object sender, System.EventArgs e)
{
var search = (sender as MenuItem).CommandParameter as Search;
// Delete local
_searchGroups[0].Remove(search);
// Update backend
_searchService.DeleteSearch(search.Id);
}
void listView_Refreshing(System.Object sender, System.EventArgs e)
{
PopulateListView(_searchService.GetRecentSearches(searchBar.Text));
listView.EndRefresh();
}
void searchBar_TextChanged(Object sender, Xamarin.Forms.TextChangedEventArgs e)
{
PopulateListView(_searchService.GetRecentSearches(e.NewTextValue));
}
}
}
< /code>
и разметка XAML выглядит следующим образом: < /p>
Я добрался до моделей, помимо вышеуказанного кода, один называемый Search и один называется SearchGroup . Оба размещены в папке моделей проекта.
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace ListExcercises.Models
{
public class SearchGroup : ObservableCollection {
public string Title { get; set; }
public SearchGroup(string title, IEnumerable searches)
{
Title = title;
}
}
}
using System;
namespace ListExcercises.Models
{
public class Search
{
public int Id { get; set; }
public string Location { get; set; }
public DateTime CheckIn { get; set; }
public DateTime CheckOut { get; set; }
public string Period
{
get
{
return String.Format("{0} - {1}",
CheckIn.ToString("MMM d, yyyy"),
CheckOut.ToString("MMM d, yyyy"));
}
}
}
}
Я действительно надеюсь, что кто -то сможет помочь и дать мне несколько указателей. Поэтому я получаю представление о том, где есть большая часть функциональности, однако все ряды пусты.
В настоящее время я пытаюсь выучить xamarin.forms, и я застрял в текущей части моего курса. Я получаю нулевые ошибки при компиляции.[code]using System; using System.Collections.Generic; using System.Linq; using ListExcercises.Models;
namespace ListExcercises.Services { public class SearchServices { private List _searches = new List { new Search { Id = 1, Location = "West Hollywood, CA, United States", CheckIn = new DateTime(2016, 9, 1), CheckOut = new DateTime(2016, 11, 1) },
new Search { Id = 2, Location = "Santa Monica, CA, United States", CheckIn = new DateTime(2016, 9, 1), CheckOut = new DateTime(2016, 11, 1) } };
public IEnumerable GetRecentSearches(string filter = null) { if (String.IsNullOrWhiteSpace(filter)) return _searches;
public void DeleteSearch(int searchId) { _searches.Remove(_searches.Single(s => s.Id == searchId)); } } } < /code> Код для представления выглядит следующим образом: < /p> using System; using System.Collections.Generic; using System.Collections.ObjectModel; using ListExcercises.Models; using ListExcercises.Services; using Xamarin.Forms;
namespace ListExcercises { public partial class ExcerciseListPage : ContentPage { private SearchServices _searchService; private List _searchGroups;
public ExcerciseListPage() { _searchService = new SearchServices();
void searchBar_TextChanged(Object sender, Xamarin.Forms.TextChangedEventArgs e) { PopulateListView(_searchService.GetRecentSearches(e.NewTextValue)); } } } < /code> и разметка XAML выглядит следующим образом: < /p>
[/code] Я добрался до моделей, помимо вышеуказанного кода, один называемый Search и один называется SearchGroup . Оба размещены в папке моделей проекта.[code]using System; using System.Collections.Generic; using System.Collections.ObjectModel;
namespace ListExcercises.Models { public class SearchGroup : ObservableCollection {
public string Title { get; set; }
public SearchGroup(string title, IEnumerable searches) { Title = title; } } } [/code] и, наконец, код в поиске выглядит так: [code]using System;
namespace ListExcercises.Models { public class Search { public int Id { get; set; } public string Location { get; set; } public DateTime CheckIn { get; set; } public DateTime CheckOut { get; set; }
public string Period { get { return String.Format("{0} - {1}", CheckIn.ToString("MMM d, yyyy"), CheckOut.ToString("MMM d, yyyy")); } } } } [/code] Я действительно надеюсь, что кто -то сможет помочь и дать мне несколько указателей. Поэтому я получаю представление о том, где есть большая часть функциональности, однако все ряды пусты.