private void OnNavigationUpdated (object sender, NavigationEventArgs e) { ScrollBarProvider provider; if ((provider = e.ChildProvider as ScrollBarProvider) != null) { if (provider != null) { SWF.ScrollBar scrollbarProvider = (SWF.ScrollBar) provider.Control; if (e.ChangeType == StructureChangeType.ChildAdded) { if (scrollbar == scrollbarProvider) return; if (scrollbar != null) scrollbar.ValueChanged -= OnScrollValueChanged; scrollbar = scrollbarProvider; scrollbar.ValueChanged += OnScrollValueChanged; } else if (e.ChangeType == StructureChangeType.ChildRemoved || e.ChangeType == StructureChangeType.ChildrenBulkRemoved) { if (scrollbar != null) scrollbar.ValueChanged -= OnScrollValueChanged; scrollbar = null; } } } RaiseAutomationPropertyChangedEvent (); }
private void OnNavigationChildrenUpdated (object sender, NavigationEventArgs args) { if (args.ChangeType == StructureChangeType.ChildAdded) { if (args.Index == -1) { AddLast (args.ChildProvider.Navigation); } else { AddElementAt (args.Index, args.ChildProvider.Navigation); } if (args.RaiseEvent == true) { Helper.RaiseStructureChangedEvent (StructureChangeType.ChildAdded, args.ChildProvider); Helper.RaiseStructureChangedEvent (StructureChangeType.ChildrenInvalidated, (FragmentControlProvider) sender); } } else if (args.ChangeType == StructureChangeType.ChildRemoved) { Remove (args.ChildProvider.Navigation); if (args.RaiseEvent == true) { Helper.RaiseStructureChangedEvent (StructureChangeType.ChildRemoved, args.ChildProvider); Helper.RaiseStructureChangedEvent (StructureChangeType.ChildrenInvalidated, (FragmentControlProvider) sender); } } else if (args.ChangeType == StructureChangeType.ChildrenReordered) { chain.Clear (); //TODO: Is this the event to generate? if (args.RaiseEvent == true) { Helper.RaiseStructureChangedEvent (StructureChangeType.ChildrenBulkRemoved, (FragmentControlProvider) sender); Helper.RaiseStructureChangedEvent (StructureChangeType.ChildrenInvalidated, (FragmentControlProvider) sender); } } }