private void Update(bool useTransition) { if (_itemPresenter == null) { return; } DataTemplate itemTemplate = ItemTemplate; if (itemTemplate == null) { return; } object dataItem = null; DataList dataList = DataList; if (dataList != null) { dataItem = dataList.CurrentItem; } DetailViewItem item = new DetailViewItem(); Style itemContainerStyle = ItemContainerStyle; if (itemContainerStyle != null) { item.Style = itemContainerStyle; } item.DataContext = dataItem; if (dataItem != null) { FrameworkElement uiItem = itemTemplate.LoadContent() as FrameworkElement; if (uiItem != null) { item.Content = uiItem; } } Transition itemTransition = ItemTransition; if ((itemTransition == null) || (_item == null)) { useTransition = false; } if (useTransition == false) { _itemPresenter.Children.Clear(); } _itemPresenter.Children.Insert(0, item); if (useTransition) { if (((IAttachedObject)itemTransition).AssociatedObject != _itemPresenter) { ((IAttachedObject)itemTransition).Detach(); ((IAttachedObject)itemTransition).Attach(_itemPresenter); itemTransition.Completed += OnItemTransitionCompleted; } itemTransition.PlayEffect(AnimationEffectDirection.Forward); } if (dataItem != null) { if (_item == null) { VisualStateManager.GoToState(this, "NonEmpty", /* useTransitions */ true); } _item = item; } else { if (_item != null) { VisualStateManager.GoToState(this, "Empty", /* useTransitions */ true); } _item = null; } }
private void Update(bool useTransition) { if (_itemPresenter == null) { return; } DataTemplate itemTemplate = ItemTemplate; if (itemTemplate == null) { return; } object dataItem = null; DataList dataList = DataList; if (dataList != null) { dataItem = dataList.CurrentItem; } DetailViewItem item = new DetailViewItem(); Style itemContainerStyle = ItemContainerStyle; if (itemContainerStyle != null) { item.Style = itemContainerStyle; } item.DataContext = dataItem; if (dataItem != null) { FrameworkElement uiItem = itemTemplate.LoadContent() as FrameworkElement; if (uiItem != null) { item.Content = uiItem; } } Transition itemTransition = ItemTransition; if ((itemTransition == null) || (_item == null)) { useTransition = false; } if (useTransition == false) { _itemPresenter.Children.Clear(); } _itemPresenter.Children.Insert(0, item); if (useTransition) { if (((IAttachedObject)itemTransition).AssociatedObject != _itemPresenter) { ((IAttachedObject)itemTransition).Detach(); ((IAttachedObject)itemTransition).Attach(_itemPresenter); itemTransition.Completed += OnItemTransitionCompleted; } itemTransition.PlayEffect(EffectDirection.Forward); } if (dataItem != null) { if (_item == null) { VisualStateManager.GoToState(this, "NonEmpty", /* useTransitions */ true); } _item = item; } else { if (_item != null) { VisualStateManager.GoToState(this, "Empty", /* useTransitions */ true); } _item = null; } }