Mono.UIAutomation.Winforms.ComboBoxProvider.ComboBoxListBoxProvider.InitializeScrollBehaviorObserver C# (CSharp) Method

InitializeScrollBehaviorObserver() protected method

protected InitializeScrollBehaviorObserver ( ) : void
return void
			protected override void InitializeScrollBehaviorObserver ()
			{
				// We implement Scroll logic this way because the internal 
				// control in charge of handling scrolling is disposed when
				// DropDownStyle is changed and is Expanded/Collapsed
				if (observer != null 
				    && (ListBoxControl == null || ListBoxControl != listControl)) {
					observer.ScrollPatternSupportChanged -= OnScrollPatternSupportChanged;
					observer.Terminate ();
					SetBehavior (ScrollPatternIdentifiers.Pattern, null);
				}
				
				if (ListBoxControl != null && ListBoxControl != listControl) {					
					if (ListBoxControl != null) {
						observer = new ScrollBehaviorObserver (this, null, VerticalScrollBar);
						observer.ScrollPatternSupportChanged += OnScrollPatternSupportChanged;
						observer.Initialize ();
						UpdateScrollBehavior (observer);
						ListBoxControl.Disposed += delegate (object obj, EventArgs args) {
							observer.Terminate ();
							SetBehavior (ScrollPatternIdentifiers.Pattern, null);
							listControl = null;
						};
					}
					listControl = ListBoxControl;
				}
			}