private void UpdateItemsVisualState() { if (this.itemsPanel != null) { this.StopInertia(); VisualStateUpdateParams updateParams = new VisualStateUpdateParams(true); this.UpdateItemsVisualState(updateParams); } }
/// <summary> /// Forces each visual item to update its state. /// </summary> internal void UpdateItemsVisualState(VisualStateUpdateParams updateParams) { if (!this.isInitialized) { return; } if (this.itemsPanel != null) { foreach (LoopingListItem item in this.itemsPanel.Children) { this.UpdateItemVisualState(item, updateParams); } } }
/// <summary> /// Updates the visual state of a single item. /// </summary> /// <param name="item">The <see cref="LoopingListItem"/> instance which state is to be updated.</param> /// <param name="updateParams">The structure that encapsulates different update parameters such as Animate, EvaluateEnabled, etc.</param> internal virtual void UpdateItemVisualState(LoopingListItem item, VisualStateUpdateParams updateParams) { if (item.IsEmpty) { return; } int logicalIndex = item.LogicalIndex; item.BeginVisualStateUpdate(); if (updateParams.EvaluateEnabled) { item.IsEnabled = this.IsItemEnabled(logicalIndex); } if (updateParams.EvaluateSelected) { item.IsSelected = this.IsItemSelected(logicalIndex); } item.EndVisualStateUpdate(true, updateParams.Animate); }