Represents a single item within a DetailView.
Inheritance: System.Windows.Data.DataItemContentControl
Example #1
0
        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;
            }
        }
Example #2
0
        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;
            }
        }