Esempio n. 1
0
        /// <summary>
        /// When overridden in a derived class, undoes the effects of the
        /// PrepareContainerForItemOverride method.
        /// </summary>
        /// <param name="element">The container element.</param>
        /// <param name="item">The item.</param>
        protected override void ClearContainerForItemOverride(DependencyObject element, object item)
        {
            LongListSelectorItem itemTuple = item as LongListSelectorItem;

            if (itemTuple != null)
            {
                var result  = ((FrameworkElement)element).GetFirstLogicalChildByType <ContentPresenter>(true);
                var handler = Unlink;
                if (result != null && handler != null)
                {
                    handler(this, new LinkUnlinkEventArgs(result));
                }
            }

            base.ClearContainerForItemOverride(element, item);
        }
Esempio n. 2
0
        /// <summary>
        /// Prepares the specified element to display the specified item.
        /// </summary>
        /// <param name="element">Element used to display the specified item.</param>
        /// <param name="item">Specified item.</param>
        protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
        {
            base.PrepareContainerForItemOverride(element, item);

            DataTemplate         template  = null;
            LongListSelectorItem itemTuple = item as LongListSelectorItem;

            if (itemTuple != null)
            {
                switch (itemTuple.ItemType)
                {
                case LongListSelectorItemType.ListHeader:
                    template = this.ListHeaderTemplate;
                    break;

                case LongListSelectorItemType.ListFooter:
                    template = this.ListFooterTemplate;
                    break;

                case LongListSelectorItemType.GroupHeader:
                    template = this.GroupHeaderTemplate;
                    break;

                case LongListSelectorItemType.GroupFooter:
                    template = this.GroupFooterTemplate;
                    break;

                case LongListSelectorItemType.Item:
                    template = this.ItemTemplate;
                    break;
                }

                TemplatedListBoxItem listBoxItem = (TemplatedListBoxItem)element;
                listBoxItem.Content         = itemTuple.Item;
                listBoxItem.Tuple           = itemTuple;
                listBoxItem.ContentTemplate = template;

                var result  = listBoxItem.GetFirstLogicalChildByType <ContentPresenter>(true);
                var handler = Link;
                if (result != null && handler != null)
                {
                    handler(this, new LinkUnlinkEventArgs(result));
                }
            }
        }