public InitializePage(IDialerService dialerService) { InitializeComponent(); var model = new LoaderViewModel(dialerService); model.Navigation = Navigation; BindingContext = model; }
public ContactList(IDialerService dialerService) { InitializeComponent(); var model = new ContactListViewModel(dialerService); model.Navigation = Navigation; model.SwitchToDialPage = () => { CurrentPage = Children[1]; }; BindingContext = model; }
// Constructor public LoaderViewModel(IDialerService dialerService) { this.dialerService = dialerService; Proceed = new Command <string>(async(key) => { var page = new ContactList(dialerService); contacts.ForEach(c => ((ContactListViewModel)page.BindingContext).Contacts.Add(c)); await Navigation.PushAsync(page); // Add the key to the input string. }); Task.Run(async() => await LoadDataAsync()); }
public ContactListViewModel(IDialerService dialerService) { AddContact = new Command <string>(async(key) => { var page = new ContactDetail(); ((ContactDetailViewModel)page.BindingContext).Contact = new Contact(); ((ContactDetailViewModel)page.BindingContext).Contacts = Contacts; await Navigation.PushAsync(page); }); EditContact = new Command <Contact>(async(c) => { var page = new ContactDetail(); ((ContactDetailViewModel)page.BindingContext).Contact = c; ((ContactDetailViewModel)page.BindingContext).Contacts = Contacts; ((ContactDetailViewModel)page.BindingContext).FirstName = c?.FirstName; ((ContactDetailViewModel)page.BindingContext).LastName = c?.LastName; ((ContactDetailViewModel)page.BindingContext).ContactNumber = c?.ContactNumber; await Navigation.PushAsync(page); }); DeleteContact = new Command <Contact>((c) => { Contacts.Remove(c); }); FavoriteContact = new Command <Contact>((c) => { var favoriteCount = Contacts.Count(i => i.IsFavorite); if (favoriteCount < 10 || c.IsFavorite) { c.IsFavorite = !c.IsFavorite; } }); DialButtonPressed = new Command <string>((c) => { if (string.IsNullOrWhiteSpace(c) && DialpadDisplay.Length > 0) { DialpadDisplay = DialpadDisplay.Substring(0, (DialpadDisplay.Length - 1)); return; } DialpadDisplay += c; }); DialContact = new Command <Contact>((c) => { //DialpadDisplay = c.ContactNumber; //SwitchToDialPage(); dialerService.DialPhoneNumber(c.ContactNumber); //Device.OpenUri(new Uri($"tel://{c.ContactNumber}")); }); CallContact = new Command(() => { dialerService.DialPhoneNumber(DialpadDisplay); //Device.OpenUri(new Uri($"tel://{DialpadDisplay}")); }); DialpadDisplay = ""; SearchText = ""; Contacts = new ObservableCollection <Contact>(); Contacts.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(CollectionChangedMethod); }
public App(IDialerService dialerService) { InitializeComponent(); MainPage = new NavigationPage(new InitializePage(dialerService)); }