protected override void OnBindingContextChanged() { base.OnBindingContextChanged(); if (BindingContext != null) { _viewModel = BindingContext as NativeFacebookPageViewModel; } }
protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.Page> e) { base.OnElementChanged(e); if (e.OldElement != null || Element == null) { return; } var pageElement = this.Element as NativeFacebookPage; if (pageElement != null) { viewModel = pageElement.ViewModel; } try { InitializedFB(); } catch (System.Exception ex) { } }
public override void ViewDidLoad() { base.ViewDidLoad(); if (this.Element is NativeFacebookPage pageElement) { viewModel = pageElement.ViewModel; } Profile.Notifications.ObserveDidChange(Profile_Changed); // Login Button Setup loginView = new LoginButton(); var frame = new CGRect(); frame.Width = 218; frame.X = (UIScreen.MainScreen.Bounds.Width - frame.Width) / 2; frame.Height = 46; frame.Y = 310; loginView.Frame = frame; loginView.LoginBehavior = LoginBehavior.Native; loginView.ReadPermissions = readPermissions.ToArray(); loginView.Completed += LoginView_Completed; loginView.LoggedOut += LoginView_LoggedOut; // The user image profile is set automatically once is logged in // Create the label that will hold user's facebook name // PictureView Setup var picFrame = new CGRect(); picFrame.Width = 220; picFrame.Height = 220; picFrame.X = (UIScreen.MainScreen.Bounds.Width - frame.Width) / 2; picFrame.Y = 70; pictureView = new ProfilePictureView(picFrame); // Label Setup var labelFrame = new CGRect(); labelFrame.Width = 220; labelFrame.Height = 21; labelFrame.Y = 50; labelFrame.X = (UIScreen.MainScreen.Bounds.Width - labelFrame.Width) / 2; nameLabel = new UILabel(labelFrame) { TextAlignment = UITextAlignment.Center, BackgroundColor = UIColor.Clear }; // If you have been logged into the app before, ask for the your profile name if (AccessToken.CurrentAccessToken != null) { ProcessFBInfo(); } // Add views to main view View.AddSubview(loginView); View.AddSubview(pictureView); View.AddSubview(nameLabel); }