Size IVirtualizingLayoutOverrides.ArrangeOverride(VirtualizingLayoutContext context, Size finalSize) { return(ArrangeOverride(context, finalSize)); }
void IVirtualizingLayoutOverrides.UninitializeForContextCore(VirtualizingLayoutContext context) { UninitializeForContextCore(context); }
Size IVirtualizingLayoutOverrides.MeasureOverride(VirtualizingLayoutContext context, Size availableSize) { return(MeasureOverride(context, availableSize)); }
protected virtual Size ArrangeOverride(VirtualizingLayoutContext context, Size finalSize) { // Do not throw. If the layout decides to arrange its // children during measure, then an ArrangeOverride is not required. return(finalSize); }
protected virtual void OnItemsChangedCore(VirtualizingLayoutContext context, object source, NotifyCollectionChangedEventArgs args) { InvalidateMeasure(); }
protected internal abstract Size MeasureOverride(VirtualizingLayoutContext context, Size availableSize);
protected virtual Size MeasureOverride(VirtualizingLayoutContext context, Size availableSize) { throw new NotImplementedException(); }
public VirtualLayoutContextAdapter(VirtualizingLayoutContext virtualizingContext) { m_virtualizingContext = new WeakReference <VirtualizingLayoutContext>(virtualizingContext); }
public ChildrenCollection(VirtualizingLayoutContext context) { m_context = context; }
protected override Size ArrangeOverride(VirtualizingLayoutContext context, Size finalSize) { return(ArrangeLayoutFunc != null?ArrangeLayoutFunc(finalSize, context) : default(Size)); }
public void InitializeForContext(VirtualizingLayoutContext context, IFlowLayoutAlgorithmDelegates callbacks) { m_algorithmCallbacks = callbacks; m_context = context; m_elementManager.SetContext(context); }
protected override Size MeasureOverride(VirtualizingLayoutContext context, Size availableSize) { return(MeasureLayoutFunc != null?MeasureLayoutFunc(availableSize, context) : default(Size)); }
internal void OnLineArranged(int startIndex, int countInLine, double lineSize, VirtualizingLayoutContext context) { // If we do not have any estimation information, use the line for estimation. // If we do have some estimation information, don't account for the last line which is quite likely // different from the rest of the lines and can throw off estimation. if (TotalLinesMeasured == 0 || startIndex + countInLine != context.ItemCount) { int estimationBufferIndex = startIndex % m_lineSizeEstimationBuffer.Count; bool alreadyMeasured = m_lineSizeEstimationBuffer[estimationBufferIndex] != 0; if (!alreadyMeasured) { ++TotalLinesMeasured; } TotalLineSize -= m_lineSizeEstimationBuffer[estimationBufferIndex]; TotalLineSize += lineSize; m_lineSizeEstimationBuffer[estimationBufferIndex] = lineSize; TotalItemsPerLine -= m_itemsPerLineEstimationBuffer[estimationBufferIndex]; TotalItemsPerLine += countInLine; m_itemsPerLineEstimationBuffer[estimationBufferIndex] = countInLine; } }
public void SetContext(VirtualizingLayoutContext virtualContext) { m_context = virtualContext; }
void IVirtualizingLayoutOverrides.OnItemsChangedCore(VirtualizingLayoutContext context, object source, NotifyCollectionChangedEventArgs args) { OnItemsChangedCore(context, source, args); }
protected virtual void UninitializeForContextCore(VirtualizingLayoutContext context) { }
internal void UninitializeForContext(VirtualizingLayoutContext context) { FlowAlgorithm.UninitializeForContext(context); }
protected internal virtual void InitializeForContextCore(VirtualizingLayoutContext context) { }