public PhotosPage(MainModel mainModel) { _MainModel = mainModel; if (_MainModel.selectedPhotos == null) { _MainModel.selectedPhotos = new ObservableCollection <Photo>() { } } ; InitializeComponent(); BindingContext = this; if (_MainModel.selectedPhotos != null) { DeletePhoto = new DeletePhoto(_MainModel, ContinueButton); ContinueButton.IsEnabled = true; } takePhoto.Clicked += async(sender, args) => { var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions { Directory = "Photos", SaveToAlbum = true, PhotoSize = PhotoSize.Full, DefaultCamera = CameraDevice.Front }); if (file == null) { return; } if (_MainModel.selectedPhotos == null) { _MainModel.selectedPhotos = new ObservableCollection <Photo>() { } } ; _MainModel.selectedPhotos.Add(new Photo { Image = ImageSource.FromStream(() => { var stream = file.GetStream(); return(stream); }), }); ContinueButton.IsEnabled = true; DeletePhoto = new DeletePhoto(_MainModel, ContinueButton); }; pickPhoto.Clicked += async(sender, args) => { var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions { PhotoSize = PhotoSize.Full, }); if (file == null) { return; } if (_MainModel.selectedPhotos == null) { _MainModel.selectedPhotos = new ObservableCollection <Photo>() { } } ; _MainModel.selectedPhotos.Add(new Photo { Image = ImageSource.FromStream(() => { var stream = file.GetStream(); return(stream); }), }); ContinueButton.IsEnabled = true; DeletePhoto = new DeletePhoto(_MainModel, ContinueButton); }; } async private void ContinueClicked(object sender, EventArgs e)
public PhotosPage(MainModel mainModel) { _MainModel = mainModel; if (_MainModel.selectedPhotos == null) { _MainModel.selectedPhotos = new ObservableCollection <Photo>() { } } ; InitializeComponent(); BindingContext = this; if (_MainModel.selectedPhotos != null) { DeletePhoto = new DeletePhoto(_MainModel, ContinueButton); ContinueButton.IsEnabled = true; } takePhoto.Clicked += async(sender, args) => { if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported) { await DisplayAlert("No Camera", ":( No camera available.", "OK"); return; } var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions { Directory = "Photos", SaveToAlbum = true, PhotoSize = PhotoSize.Full, DefaultCamera = CameraDevice.Front }); if (file == null) { return; } if (_MainModel.selectedPhotos == null) { _MainModel.selectedPhotos = new ObservableCollection <Photo>() { } } ; _MainModel.selectedPhotos.Add(new Photo { Image = ImageSource.FromStream(() => { var stream = file.GetStream(); return(stream); }), Name = file.Path.Split(new char[] { '\\', '/' }).Last() }); ContinueButton.IsEnabled = true; DeletePhoto = new DeletePhoto(_MainModel, ContinueButton); }; pickPhoto.Clicked += async(sender, args) => { if (!CrossMedia.Current.IsPickPhotoSupported) { await DisplayAlert("Photos Not Supported", ":( Permission not granted to photos.", "OK"); return; } var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions { PhotoSize = PhotoSize.Full, }); if (file == null) { return; } if (_MainModel.selectedPhotos == null) { _MainModel.selectedPhotos = new ObservableCollection <Photo>() { } } ; _MainModel.selectedPhotos.Add(new Photo { Image = ImageSource.FromStream(() => { var stream = file.GetStream(); return(stream); }), Name = file.Path.Split(new char[] { '\\', '/' }).Last() }); ContinueButton.IsEnabled = true; DeletePhoto = new DeletePhoto(_MainModel, ContinueButton); }; } async void OpenFullPhoto(object sender, ItemTappedEventArgs e) { Pages.FullImagePage fullImagePage = new Pages.FullImagePage((Photo)e.Item); await Navigation.PushAsync(fullImagePage); ((ListView)sender).SelectedItem = null; } async private void ContinueClicked(object sender, EventArgs e)