[Mono-bugs] [Bug 81532][Nor] New - Wizard + OnDeactivate in WizardStep that calls wizard.MoveTo

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Sat May 5 21:22:32 EDT 2007


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by mmorano at mikeandwan.us.

http://bugzilla.ximian.com/show_bug.cgi?id=81532

--- shadow/81532	2007-05-05 21:22:32.000000000 -0400
+++ shadow/81532.tmp.16890	2007-05-05 21:22:32.000000000 -0400
@@ -0,0 +1,66 @@
+Bug#: 81532
+Product: Mono: Class Libraries
+Version: 1.2
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: Sys.Web
+AssignedTo: mhabersack at novell.com                            
+ReportedBy: mmorano at mikeandwan.us               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Wizard + OnDeactivate in WizardStep that calls wizard.MoveTo
+
+I have a step in a wizard control that presents radio buttons, which
+effectively control the path the wizard should take.  In order to control
+what the next appropriate step is based on the selection, have implemented
+a handler for the OnDeactivate event on the WizardStep, which calls the
+Wizard.MoveTo method to move to the appropriate step.
+
+This works successfully on MS, however, currently causes a stack overflow
+on mono, and xsp2 crashes.  The fix is to add a check to see if we need to
+move to the step or not (which then sends step change events).  The
+following patch addresses this issue, and behaves properly on mono:
+
+
+Index: Wizard.cs
+===================================================================
+--- Wizard.cs   (revision 76736)
++++ Wizard.cs   (working copy)
+@@ -210,15 +210,18 @@
+                                if (inited && !AllowNavigationToStep (value))
+                                        return;
+ 
+-                               activeStepIndex = value;
++                               if(activeStepIndex != value)
++                               {
++                                       activeStepIndex = value;
+ 
+-                               if (inited) {
+-                                       multiView.ActiveViewIndex = value;
+-                                       if (stepDatalist != null) {
+-                                               stepDatalist.SelectedIndex
+= value;
+-                                               stepDatalist.DataBind ();
++                                       if (inited) {
++                                               multiView.ActiveViewIndex =
+value;
++                                               if (stepDatalist != null) {
++                                                      
+stepDatalist.SelectedIndex = value;
++                                                      
+stepDatalist.DataBind ();
++                                               }
++                                               OnActiveStepChanged (this,
+EventArgs.Empty);
+                                        }
+-                                       OnActiveStepChanged (this,
+EventArgs.Empty);
+                                }
+                        }
+                }


More information about the mono-bugs mailing list