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);
}
}
}