// Update methods for each path node used in binding steps.
 private void Update_(global::BigMountainX.UserIntroPage obj, int phase)
 {
     this.bindingsTracking.UpdateChildListeners_(obj);
     if (obj != null)
     {
         if ((phase & (NOT_PHASED | DATA_CHANGED | (1 << 0))) != 0)
         {
             this.Update_Genders(obj.Genders, phase);
             this.Update_Profile(obj.Profile, phase);
         }
     }
 }
                public void PropertyChanged_(object sender, global::System.ComponentModel.PropertyChangedEventArgs e)
                {
                    UserIntroPage_obj1_Bindings bindings;

                    if (WeakRefToBindingObj.TryGetTarget(out bindings))
                    {
                        string propName = e.PropertyName;
                        global::BigMountainX.UserIntroPage obj = sender as global::BigMountainX.UserIntroPage;
                        if (global::System.String.IsNullOrEmpty(propName))
                        {
                            if (obj != null)
                            {
                                bindings.Update_Genders(obj.Genders, DATA_CHANGED);
                                bindings.Update_Profile(obj.Profile, DATA_CHANGED);
                            }
                        }
                        else
                        {
                            switch (propName)
                            {
                            case "Genders":
                            {
                                if (obj != null)
                                {
                                    bindings.Update_Genders(obj.Genders, DATA_CHANGED);
                                }
                                break;
                            }

                            case "Profile":
                            {
                                if (obj != null)
                                {
                                    bindings.Update_Profile(obj.Profile, DATA_CHANGED);
                                }
                                break;
                            }

                            default:
                                break;
                            }
                        }
                    }
                    else
                    {
                        ReleaseAllListeners();
                    }
                }
                public void UpdateChildListeners_(global::BigMountainX.UserIntroPage obj)
                {
                    UserIntroPage_obj1_Bindings bindings;

                    if (WeakRefToBindingObj.TryGetTarget(out bindings))
                    {
                        if (bindings.dataRoot != null)
                        {
                            ((global::System.ComponentModel.INotifyPropertyChanged)bindings.dataRoot).PropertyChanged -= PropertyChanged_;
                        }
                        if (obj != null)
                        {
                            bindings.dataRoot = obj;
                            ((global::System.ComponentModel.INotifyPropertyChanged)obj).PropertyChanged += PropertyChanged_;
                        }
                    }
                }
            // UserIntroPage_obj1_Bindings

            public void SetDataRoot(global::BigMountainX.UserIntroPage newDataRoot)
            {
                this.bindingsTracking.ReleaseAllListeners();
                this.dataRoot = newDataRoot;
            }