示例#1
0
        /// <summary>
        /// Allows to minimize the overhead of creating new instances whenever a logical index changes by formatting an existing data item instance.
        /// </summary>
        internal virtual void UpdateDataItem(LoopingListDataItem dataItem, LoopingListItem visualItem)
        {
            if (this.ItemsSource != null)
            {
                dataItem.Item = this.ItemsSource[visualItem.LogicalIndex];
            }

            this.UpdateItemTemplate(dataItem, visualItem);
        }
示例#2
0
        private void SetDataItem(LoopingListItem visualItem)
        {
            LoopingListDataItem dataItem = visualItem.Content as LoopingListDataItem;

            if (dataItem == null)
            {
                dataItem = this.CreateDataItem(visualItem.LogicalIndex);
                visualItem.DataContext = dataItem;
                visualItem.Content     = dataItem;
            }

            this.UpdateDataItem(dataItem, visualItem);
        }
示例#3
0
        private void UpdateItemTemplate(LoopingListDataItem dataItem, LoopingListItem visualItem)
        {
            DataTemplate         template = null;
            DataTemplateSelector selector = this.itemTemplateSelectorCache;

            if (selector != null)
            {
                template = selector.SelectTemplate(dataItem, visualItem);
            }

            if (template == null)
            {
                template = this.itemTemplateCache;
            }

            visualItem.ContentTemplate = template;
        }
示例#4
0
 /// <summary>
 /// Allows to minimize the overhead of creating new instances whenever a logical index changes by formatting an existing data item instance.
 /// </summary>
 /// <param name="dataItem"></param>
 /// <param name="visualItem"></param>
 internal virtual void UpdateDataItem(LoopingListDataItem dataItem, LoopingListItem visualItem)
 {
     this.UpdateItemTemplate(dataItem, visualItem);
 }