protected virtual void OnLayoutStateChangeCompleted(object sender, LayoutStateChangeEventArgs args) { var threadSafeInstance = this.LayoutStateChangeCompleted; if (threadSafeInstance != null) { threadSafeInstance(this, args); } }
void visualItem_LayoutStateChangeCompleted(object sender, LayoutStateChangeEventArgs e) { var visualItem = sender as AnimatedLayoutControl; if (e.NewState == LayoutState.Unloaded) { visualItem.LayoutStateChangeCompleted -= new EventHandler <LayoutStateChangeEventArgs>(visualItem_LayoutStateChangeCompleted); ItemsToRemove.Add(visualItem.DataContext); } }
void item_LayoutStateChangeCompleted(object sender, LayoutStateChangeEventArgs e) { if (e.NewState == LayoutState.Unloaded) { var item = sender as AnimatedLayoutControl; item.LayoutStateChangeCompleted -= new EventHandler <LayoutStateChangeEventArgs>(item_LayoutStateChangeCompleted); BaseItemsSource.Clear(); VisualItems.Clear(); isUnloading = false; var itemsToAdd = NewRequestedItems.ToArray(); NewRequestedItems.Clear(); foreach (var newItem in itemsToAdd) { BaseItemsSource.Add(newItem); } } }