private static void ViewPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { //Unfortunately the Parent property doesn't signal a change //However when the renderer is set it should have it's parent if (e.PropertyName == "Renderer") { var view = sender as View; var gcv = FindContentViewParent(view); var pending = PendingInterestParameters.Where(x => x.View == view).ToList(); foreach (var pendingparam in pending) { gcv.RegisterInterests(view, pendingparam.Interests); PendingInterestParameters.Remove(pendingparam); } view.PropertyChanged -= ViewPropertyChanged; } }
private static void InterestsChanged(BindableObject bo, GestureCollection oldvalue, GestureCollection newvalue) { var view = bo as View; //if (view == null) // throw new InvalidBindableException(bo, typeof(View)); var gcv = FindContentViewParent(view, false); if (gcv == null) { PendingInterestParameters.Add(new PendingInterestParams { View = view, Interests = newvalue }); view.PropertyChanged += ViewPropertyChanged; } else { gcv.RegisterInterests(view, newvalue); } }