<?xml version="1.0"?>
<doc>
    <assembly>
        <name>DynamicData</name>
    </assembly>
    <members>
        <member name="T:DynamicData.Aggregation.AggregateItem`1">
            <summary>
            An object representing added and removed items in a continuous aggregation stream
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
        </member>
        <member name="M:DynamicData.Aggregation.AggregateItem`1.#ctor(DynamicData.Aggregation.AggregateType,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Aggregation.AggregateItem`1"/> struct.
            </summary>
            <param name="type">The type.</param>
            <param name="item">The item.</param>
        </member>
        <member name="P:DynamicData.Aggregation.AggregateItem`1.Type">
            <summary>
            Gets the type.
            </summary>
        </member>
        <member name="P:DynamicData.Aggregation.AggregateItem`1.Item">
            <summary>
            Gets the item.
            </summary>
        </member>
        <member name="T:DynamicData.Aggregation.AggregateType">
            <summary>
            The type of aggregation
            </summary>
        </member>
        <member name="F:DynamicData.Aggregation.AggregateType.Add">
            <summary>
            The add
            </summary>
        </member>
        <member name="F:DynamicData.Aggregation.AggregateType.Remove">
            <summary>
            The remove
            </summary>
        </member>
        <member name="T:DynamicData.Aggregation.AggregationEx">
            <summary>
            Aggregation extensions
            </summary>
        </member>
        <member name="M:DynamicData.Aggregation.AggregationEx.ForAggregation``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Transforms the changeset into an enumerable which is suitable for high performing aggregations
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.AggregationEx.ForAggregation``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Transforms the changeset into an enumerable which is suitable for high performing aggregations
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.AggregationEx.Accumlate``2(System.IObservable{DynamicData.IChangeSet{``0}},``1,System.Func{``0,``1},System.Func{``1,``1,``1},System.Func{``1,``1,``1})">
            <summary>
            Applies an accumulator when items are added to and removed from specified stream,  
            starting with the initial seed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="source">The source.</param>
            <param name="seed">The seed.</param>
            <param name="accessor">The accessor.</param>
            <param name="addAction">The add action.</param>
            <param name="removeAction">The remove action.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.AggregationEx.Accumlate``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},``2,System.Func{``0,``2},System.Func{``2,``2,``2},System.Func{``2,``2,``2})">
            <summary>
            Applies an accumulator when items are added to and removed from specified stream,  
            starting with the initial seed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="source">The source.</param>
            <param name="seed">The seed.</param>
            <param name="accessor">The accessor.</param>
            <param name="addAction">The add action.</param>
            <param name="removeAction">The remove action.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.AggregationEx.Accumlate``2(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},``1,System.Func{``0,``1},System.Func{``1,``1,``1},System.Func{``1,``1,``1})">
            <summary>
            Applies an accumulator when items are added to and removed from specified stream,  
            starting with the initial seed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="source">The source.</param>
            <param name="seed">The seed.</param>
            <param name="accessor">The accessor.</param>
            <param name="addAction">The add action.</param>
            <param name="removeAction">The remove action.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.AggregationEx.InvalidateWhen``1(System.IObservable{``0},System.IObservable{System.Reactive.Unit})">
            <summary>
            Used to invalidate an aggregating stream. Used when there has been an inline change 
            i.e. a property changed or meta data has changed
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="invalidate">The invalidate.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.AggregationEx.InvalidateWhen``2(System.IObservable{``0},System.IObservable{``1})">
            <summary>
            Used to invalidate an aggregating stream. Used when there has been an inline change 
            </summary>
            <typeparam name="T"></typeparam>
            <typeparam name="TTrigger">The type of the trigger.</typeparam>
            <param name="source">The source.</param>
            <param name="invalidate">The invalidate.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Aggregation.AvgEx">
            <summary>
            Average extensions
            </summary>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Int32},System.Int32)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.Int32}},System.Int32)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Int64},System.Int64)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.Int64}},System.Int64)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Double},System.Double)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.Double}},System.Double)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Decimal},System.Decimal)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.Decimal}},System.Decimal)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Single},System.Single)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.Single}},System.Single)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Int32},System.Int32)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Nullable{System.Int32}},System.Int32)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Int64},System.Int64)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Nullable{System.Int64}},System.Int64)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Double},System.Double)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Nullable{System.Double}},System.Double)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Decimal},System.Decimal)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Nullable{System.Decimal}},System.Decimal)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Single},System.Single)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Nullable{System.Single}},System.Single)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Int32},System.Int32)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Nullable{System.Int32}},System.Int32)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Int64},System.Int64)">
            <summary>
            Averages the specified value selector.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="emptyValue">The empty value.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Nullable{System.Int64}},System.Int64)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Double},System.Double)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Nullable{System.Double}},System.Double)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Decimal},System.Decimal)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Nullable{System.Decimal}},System.Decimal)">
            <summary>
            Averages the specified value selector.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="emptyValue">The empty value.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Single},System.Single)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.AvgEx.Avg``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Nullable{System.Single}},System.Single)">
            <summary>
            Continuous calculation of the average of the underlying data source.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source observable</param>
            <param name="valueSelector">The function which returns the value</param>
            <param name="emptyValue">The resulting average value when there is no data</param>
            <returns>
            An observable of averages
            </returns>
        </member>
        <member name="T:DynamicData.Aggregation.CountEx">
            <summary>
            Count extensions
            </summary>
        </member>
        <member name="M:DynamicData.Aggregation.CountEx.Count``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Counts the total number of items in the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.CountEx.Count``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Counts the total number of items in the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.CountEx.Count``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}})">
            <summary>
            Counts the total number of items in the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.CountEx.Count``1(System.IObservable{DynamicData.IDistinctChangeSet{``0}})">
            <summary>
            Counts the total number of items in the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.CountEx.IsEmpty``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Counts the total number of items in the underlying data source
            and return true if the number of items == 0
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.CountEx.NotEmpty``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Counts the total number of items in the underlying data source
            and returns true if the number of items is greater than 0
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.CountEx.IsEmpty``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Counts the total number of items in the underlying data source
            and return true if the number of items == 0
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.CountEx.NotEmpty``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Counts the total number of items in the underlying data source
            and returns true if the number of items is greater than 0
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Aggregation.IAggregateChangeSet`1">
            <summary>
            A changeset which has been shaped for rapid online aggregations
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:DynamicData.Aggregation.MaxEx">
            <summary>
            Maximum and minimum value extensions
            
            </summary>
        </member>
        <member name="M:DynamicData.Aggregation.MaxEx.Maximum``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1},``1)">
            <summary>
            Continually calculates the maximum value from the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="emptyValue">The value to use when the underlying collection is empty</param>
            <returns>
            A distinct observable of the maximum item
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.MaxEx.Maximum``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2},``2)">
            <summary>
            Continually calculates the maximum value from the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="emptyValue">The value to use when the underlying collection is empty</param>
            <returns>
            A distinct observable of the maximum item
            </returns>
        </member>
        <member name="M:DynamicData.Aggregation.MaxEx.Minimum``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1},``1)">
            <summary>
            Continually calculates the minimum value from the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="emptyValue">The value to use when the underlying collection is empty</param>
            <returns>A distinct observable of the minimums item</returns>
        </member>
        <member name="M:DynamicData.Aggregation.MaxEx.Minimum``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2},``2)">
            <summary>
            Continually calculates the minimum value from the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="emptyValue">The value to use when the underlying collection is empty</param>
            <returns>
            A distinct observable of the minimums item
            </returns>
        </member>
        <member name="T:DynamicData.Aggregation.StdDevEx">
            <summary>
            Extensions for calculating standard deviation
            </summary>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Int32},System.Int32)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Int64},System.Int64)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Double},System.Double)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Decimal},System.Decimal)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Single},System.Single)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Int32},System.Int32)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Int64},System.Int64)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Double},System.Double)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Decimal},System.Decimal)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Single},System.Single)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Int32},System.Int32)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Int64},System.Int64)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Decimal},System.Decimal)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Double},System.Double)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.Aggregation.StdDevEx.StdDev``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Single},System.Single)">
            <summary>
            Continual computation of the standard deviation of the  values in the underlying data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <param name="fallbackValue">The fallback value.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="T:DynamicData.Aggregation.SumEx">
            <summary>
            Aggregation extensions
            </summary>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Int32})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.Int32}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Int64})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.Int64}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Double})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.Double}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Decimal})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.Decimal}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Single})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.Single}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Int32})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Nullable{System.Int32}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Int64})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Nullable{System.Int64}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Double})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Nullable{System.Double}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Decimal})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Nullable{System.Decimal}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Single})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Nullable{System.Single}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Int32})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Nullable{System.Int32}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Int64})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Nullable{System.Int64}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Double})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Nullable{System.Double}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Decimal})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Nullable{System.Decimal}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Single})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Aggregation.SumEx.Sum``1(System.IObservable{DynamicData.Aggregation.IAggregateChangeSet{``0}},System.Func{``0,System.Nullable{System.Single}})">
            <summary>
            Continual computes the sum of values matching the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Alias.ObservableCacheAlias">
            <summary>
            Observable cache alias names
            </summary>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.Where``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Boolean})">
            <summary>
            Filters the specified source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="filter">The filter.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.Where``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Func{``0,System.Boolean}})">
            <summary>
            Creates a filtered stream which can be dynamically filtered
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="predicateChanged">Observable to change the underlying predicate.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.Where``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Reactive.Unit})">
            <summary>
            Creates a filtered stream which can be dynamically filtered
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="reapplyFilter">Observable to re-evaluate whether the filter still matches items. Use when filtering on mutable values</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.Where``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Func{``0,System.Boolean}},System.IObservable{System.Reactive.Unit})">
            <summary>
            Creates a filtered stream which can be dynamically filtered
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="reapplyFilter">Observable to re-evaluate whether the filter still matches items. Use when filtering on mutable values</param>
            <param name="predicateChanged">Observable to change the underlying predicate.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.Select``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},System.IObservable{System.Reactive.Unit})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for all items</param>#
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.Select``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},System.IObservable{System.Func{``1,``2,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.Select``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},System.IObservable{System.Reactive.Unit})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for all items</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.Select``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},System.IObservable{System.Func{``1,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.SelectTree``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``1})">
            <summary>
            Transforms the object to a fully recursive tree, create a hiearchy based on the pivot function
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="pivotOn">The pivot on.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.SelectMany``4(System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,System.Collections.Generic.IEnumerable{``0}},System.Func{``0,``1})">
            <summary>
            Equivalent to a select many transform. To work, the key must individually identify each child. 
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TDestinationKey">The type of the destination key.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TSourceKey">The type of the source key.</typeparam>
            <param name="source">The source.</param>
            <param name="manyselector">The manyselector.</param>
            <param name="keySelector">The key selector which must be unique across all</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.SelectSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Reactive.Unit})">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.
             If not specified the stream will terminate as per rx convention.
            </param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.SelectSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Func{``1,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.
             If not specified the stream will terminate as per rx convention.
            </param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.SelectSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Func{``1,``2,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.
             If not specified the stream will terminate as per rx convention.
            </param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableCacheAlias.SelectSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Reactive.Unit})">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.
             If not specified the stream will terminate as per rx convention.
            </param>
            <param name="forceTransform">Invoke to force a new transform for all items</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="T:DynamicData.Alias.ObservableListAlias">
            <summary>
            Observable cache alias names
            </summary>
        </member>
        <member name="M:DynamicData.Alias.ObservableListAlias.Where``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Boolean})">
            <summary>
            Filters the source using the specified valueSelector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="predicate">The valueSelector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableListAlias.Where``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{System.Func{``0,System.Boolean}})">
            <summary>
            Filters source using the specified filter observable predicate.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="predicate"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            filterController</exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableListAlias.Select``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            valueSelector
            </exception>
        </member>
        <member name="M:DynamicData.Alias.ObservableListAlias.SelectMany``2(System.IObservable{DynamicData.IChangeSet{``1}},System.Func{``1,System.Collections.Generic.IEnumerable{``0}})">
            <summary>
            Equivalent to a select many transform. To work, the key must individually identify each child.
            **** Assumes each child can only have one parent - support for children with multiple parents is a work in progresses
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <param name="source">The source.</param>
            <param name="manyselector">The manyselector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            manyselector
            </exception>
        </member>
        <member name="T:DynamicData.Binding.AbstractNotifyPropertyChanged">
            <summary>
            Base class for implementing notify property changes
            </summary>
        </member>
        <member name="E:DynamicData.Binding.AbstractNotifyPropertyChanged.PropertyChanged">
            <summary>
            Occurs when a property value has changed.
            </summary>
        </member>
        <member name="M:DynamicData.Binding.AbstractNotifyPropertyChanged.OnPropertyChanged(System.String)">
            <summary>
            Invokes on property changed
            </summary>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="M:DynamicData.Binding.AbstractNotifyPropertyChanged.SetAndRaise``1(``0@,``0,System.String)">
            <summary>
            If the value has changed, sets referenced backing field and raise notify property changed
            </summary>
            <typeparam name="T"></typeparam>
            <param name="backingField">The backing field.</param>
            <param name="newValue">The new value.</param>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="M:DynamicData.Binding.AbstractNotifyPropertyChanged.SetAndRaise``1(``0@,``0,System.Collections.Generic.IEqualityComparer{``0},System.String)">
            <summary>
            If the value has changed, sets referenced backing field and raise notify property changed
            </summary>
            <typeparam name="T"></typeparam>
            <param name="backingField">The backing field.</param>
            <param name="newValue">The new value.</param>
            <param name="comparer">The comparer.</param>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="M:DynamicData.Binding.AbstractNotifyPropertyChanged.SuspendNotifications(System.Boolean)">
            <summary>
            Suspends notifications. When disposed, a reset notification is fired
            </summary>
            <returns></returns>
            
        </member>
        <member name="T:DynamicData.Binding.BindingListAdaptor`1">
            <summary>
            Adaptor to reflect a change set into a binding list
            </summary>
        </member>
        <member name="M:DynamicData.Binding.BindingListAdaptor`1.#ctor(System.ComponentModel.BindingList{`0},System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Binding.BindingListAdaptor`1.Adapt(DynamicData.IChangeSet{`0})">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Binding.BindingListAdaptor`2">
            <summary>
            Adaptor to reflect a change set into a binding list
            </summary>
        </member>
        <member name="M:DynamicData.Binding.BindingListAdaptor`2.#ctor(System.ComponentModel.BindingList{`0},System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Binding.BindingListAdaptor`2.Adapt(DynamicData.IChangeSet{`0,`1})">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Binding.BindingListEx">
            <summary>
            Extensions to convert an binding list into a dynamic stream
            </summary>
        </member>
        <member name="M:DynamicData.Binding.BindingListEx.ToObservableChangeSet``1(System.ComponentModel.BindingList{``0})">
            <summary>
            Convert a binding list into an observable change set.
            Change set observes list change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Binding.BindingListEx.ToObservableChangeSet``2(System.ComponentModel.BindingList{``0},System.Func{``0,``1})">
            <summary>
            Convert a binding list into an observable change set.
            Change set observes list change events.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.Binding.BindingListEx.ToObservableChangeSet``2(``0)">
            <summary>
            Convert a binding list into an observable change set.
            Change set observes list change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <typeparam name="TCollection"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Binding.BindingListEx.ObserveCollectionChanges(System.ComponentModel.IBindingList)">
            <summary>
            Observes list changed args
            </summary>
        </member>
        <member name="T:DynamicData.Binding.IEvaluateAware">
            <summary>
            Implement on an object and use in conjunction with InvokeEvaluate operator
            to make an object aware of any evaluates
            </summary>
        </member>
        <member name="M:DynamicData.Binding.IEvaluateAware.Evaluate">
            <summary>
            Refresh method
            </summary>
        </member>
        <member name="T:DynamicData.Binding.IIndexAware">
            <summary>
            Implement on an object and use in conjunction with UpdateIndex operator
            to make an object aware of it's sorted index
            </summary>
        </member>
        <member name="P:DynamicData.Binding.IIndexAware.Index">
            <summary>
            Gets or sets the index.
            </summary>
            <value>
            The index.
            </value>
        </member>
        <member name="T:DynamicData.Binding.INotifyCollectionChangedSuspender">
            <summary>
            Represents an observable collection where collection changed and count notifications can be suspended 
            </summary>
        </member>
        <member name="M:DynamicData.Binding.INotifyCollectionChangedSuspender.SuspendNotifications">
            <summary>
            Suspends notifications. When disposed, a reset notification is fired
            </summary>
        </member>
        <member name="M:DynamicData.Binding.INotifyCollectionChangedSuspender.SuspendCount">
            <summary>
            Suspends count notifications
            </summary>
        </member>
        <member name="T:DynamicData.Binding.IObservableCollection`1">
            <summary>
            An override of observable collection which allows the suspension of notifications
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.Binding.IObservableCollection`1.Move(System.Int32,System.Int32)">
            <summary>
            Moves the item at the specified index to a new location in the collection.
            </summary>
            <param name="oldIndex">The zero-based index specifying the location of the item to be moved.</param>
            <param name="newIndex">The zero-based index specifying the new location of the item.</param>
        </member>
        <member name="M:DynamicData.Binding.IObservableCollection`1.Load(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Clears the list and Loads the specified items.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="T:DynamicData.Binding.IObservableCollectionAdaptor`2">
            <summary>
            Represents an adaptor which is used to update observable collection from
            a changeset stream
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Binding.IObservableCollectionAdaptor`2.Adapt(DynamicData.IChangeSet{`0,`1},DynamicData.Binding.IObservableCollection{`0})">
            <summary>
            Maintains the specified collection from the changes
            </summary>
            <param name="changes">The changes.</param>
            <param name="collection">The collection.</param>
        </member>
        <member name="T:DynamicData.Binding.IObservableListEx">
            <summary>
            Extensions to convert a dynamic stream out to an <see cref="T:DynamicData.IObservableList`1"/>.
            </summary>
        </member>
        <member name="M:DynamicData.Binding.IObservableListEx.BindToObservableList``1(System.IObservable{DynamicData.IChangeSet{``0}},DynamicData.IObservableList{``0}@)">
            <summary>
            Binds the results to the specified <see cref="T:DynamicData.IObservableList`1"/>. Unlike
            binding to a <see cref="!:ReadOnlyObservableCollection&lt;T&gt;"/> which loses the
            ability to refresh items, binding to an <see cref="T:DynamicData.IObservableList`1"/>.
            allows for refresh changes to be preserved and keeps the list read-only.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns>The <paramref name="source"/> changeset for continued chaining.</returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Binding.IObservableListEx.BindToObservableList``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},DynamicData.IObservableList{``0}@)">
            <summary>
            Binds the results to the specified <see cref="T:DynamicData.IObservableList`1"/>. Unlike
            binding to a <see cref="!:ReadOnlyObservableCollection&lt;T&gt;"/> which loses the
            ability to refresh items, binding to an <see cref="T:DynamicData.IObservableList`1"/>.
            allows for refresh changes to be preserved and keeps the list read-only.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns>The <paramref name="source"/> changeset for continued chaining.</returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Binding.IObservableListEx.BindToObservableList``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}},DynamicData.IObservableList{``0}@)">
            <summary>
            Binds the results to the specified <see cref="T:DynamicData.IObservableList`1"/>. Unlike
            binding to a <see cref="!:ReadOnlyObservableCollection&lt;T&gt;"/> which loses the
            ability to refresh items, binding to an <see cref="T:DynamicData.IObservableList`1"/>.
            allows for refresh changes to be preserved and keeps the list read-only.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns>The <paramref name="source"/> changeset for continued chaining.</returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Binding.IObservableListEx.RemoveKey``2(DynamicData.IChangeSet{``0,``1},DynamicData.IExtendedList{``0})">
            <summary>
            Converts a <see cref="T:DynamicData.IChangeSet`2"/> to <see cref="T:DynamicData.IChangeSet`1"/>
            which allows for binding a cache to a list.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="changeSetWithKey">The source change set</param>
            <param name="list">The list needed to support refresh</param>
            <returns>The downcasted <see cref="T:DynamicData.IChangeSet`1"/></returns>
        </member>
        <member name="T:DynamicData.Binding.ISortedObservableCollectionAdaptor`2">
            <summary>
            Represents an adaptor which is used to update observable collection from
            a sorted change set stream
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Binding.ISortedObservableCollectionAdaptor`2.Adapt(DynamicData.ISortedChangeSet{`0,`1},DynamicData.Binding.IObservableCollection{`0})">
            <summary>
            Maintains the specified collection from the changes
            </summary>
            <param name="changes">The changes.</param>
            <param name="collection">The collection.</param>
        </member>
        <member name="T:DynamicData.Binding.NotifyPropertyChangedEx">
            <summary>
            Property changes notification
            </summary>
        </member>
        <member name="M:DynamicData.Binding.NotifyPropertyChangedEx.WhenAnyPropertyChanged``1(``0,System.String[])">
            <summary>
            Notifies when any any property on the object has changed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="propertiesToMonitor">specify properties to Monitor, or omit to monitor all property changes</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Binding.NotifyPropertyChangedEx.WhenPropertyChanged``2(``0,System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Boolean,System.Func{``1})">
            <summary>
            Observes property changes for the specified property, starting with the current value
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TProperty">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="propertyAccessor">The property to observe</param>
            <param name="notifyOnInitialValue">If true the resulting observable includes the initial value</param>
            <param name="fallbackValue"> A fallback value may be specified to ensure a notification is received when a value is unobtainable. 
            For example when observing Parent.Child.Age, if Child == null the value is unobtainable as Age is a struct and cannot be set to Null. 
            For an object like Parent.Child.Sibling, sibling is an object so if Child == null, the value null and obtainable and is returned as null.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">propertyAccessor</exception>
        </member>
        <member name="M:DynamicData.Binding.NotifyPropertyChangedEx.WhenValueChanged``2(``0,System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Boolean,System.Func{``1})">
            <summary>
            Observes property changes for the specified property, starting with the current value
            </summary>
            <param name="source">The source.</param>
            <param name="propertyAccessor">The property to observe</param>
            <param name="notifyOnInitialValue">If true the resulting observable includes the initial value</param>
            <param name="fallbackValue"> A fallback value may be specified to ensure a notification is received when a value is unobtainable. 
            For example when observing Parent.Child.Age, if Child == null the value is unobtainable as Age is a struct and cannot be set to Null. 
            For an object like Parent.Child.Sibling, sibling is an object so if Child == null, the value null and obtainable and is returned as null.</param>
        </member>
        <member name="M:DynamicData.Binding.NotifyPropertyChangedEx.WhenChanged``3(``0,System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Func{``0,``2,``1},System.Func{``2})">
            <summary>
            Produces an observable based on the combined values of the specified properties, including the initial value.  
            
            ** A fallback value may be specified to ensure a notification is received when a value is unobtainable. 
            For example when observing Parent.Child.Age, if Child == null the value is unobtainable as Age is a struct and cannot be set to Null. 
            For an object like Parent.Child.Sibling, sibling is an object so if Child == null, the value null and obtainable and is returned as null.
            </summary>
        </member>
        <member name="M:DynamicData.Binding.NotifyPropertyChangedEx.WhenChanged``4(``0,System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``0,``3}},System.Func{``0,``2,``3,``1},System.Func{``2},System.Func{``3})">
            <summary>
            Produces an observable based on the combined values of the specified properties, including the initial value.  
            
            ** A fallback value may be specified to ensure a notification is received when a value is unobtainable. 
            For example when observing Parent.Child.Age, if Child == null the value is unobtainable as Age is a struct and cannot be set to Null. 
            For an object like Parent.Child.Sibling, sibling is an object so if Child == null, the value null and obtainable and is returned as null.
            </summary>
        </member>
        <member name="M:DynamicData.Binding.NotifyPropertyChangedEx.WhenChanged``5(``0,System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``0,``3}},System.Linq.Expressions.Expression{System.Func{``0,``4}},System.Func{``0,``2,``3,``4,``1},System.Func{``2},System.Func{``3},System.Func{``4})">
            <summary>
            Produces an observable based on the combined values of the specified properties, including the initial value.  
            
            ** A fallback value may be specified to ensure a notification is received when a value is unobtainable. 
            For example when observing Parent.Child.Age, if Child == null the value is unobtainable as Age is a struct and cannot be set to Null. 
            For an object like Parent.Child.Sibling, sibling is an object so if Child == null, the value null and obtainable and is returned as null.
            </summary>
        </member>
        <member name="M:DynamicData.Binding.NotifyPropertyChangedEx.WhenChanged``6(``0,System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``0,``3}},System.Linq.Expressions.Expression{System.Func{``0,``4}},System.Linq.Expressions.Expression{System.Func{``0,``5}},System.Func{``0,``2,``3,``4,``5,``1},System.Func{``2},System.Func{``3},System.Func{``4},System.Func{``5})">
            <summary>
            Produces an observable based on the combined values of the specified properties, including the initial value.  
            
            ** A fallback value may be specified to ensure a notification is received when a value is unobtainable. 
            For example when observing Parent.Child.Age, if Child == null the value is unobtainable as Age is a struct and cannot be set to Null. 
            For an object like Parent.Child.Sibling, sibling is an object so if Child == null, the value null and obtainable and is returned as null.
            </summary>
        </member>
        <member name="M:DynamicData.Binding.NotifyPropertyChangedEx.WhenChanged``7(``0,System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``0,``3}},System.Linq.Expressions.Expression{System.Func{``0,``4}},System.Linq.Expressions.Expression{System.Func{``0,``5}},System.Linq.Expressions.Expression{System.Func{``0,``6}},System.Func{``0,``2,``3,``4,``5,``6,``1},System.Func{``2},System.Func{``3},System.Func{``4},System.Func{``5},System.Func{``6})">
            <summary>
            Produces an observable based on the combined values of the specified properties, including the initial value.  
            
            ** A fallback value may be specified to ensure a notification is received when a value is unobtainable. 
            For example when observing Parent.Child.Age, if Child == null the value is unobtainable as Age is a struct and cannot be set to Null. 
            For an object like Parent.Child.Sibling, sibling is an object so if Child == null, the value null and obtainable and is returned as null.
            </summary>
        </member>
        <member name="M:DynamicData.Binding.NotifyPropertyChangedEx.WhenChanged``8(``0,System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``0,``3}},System.Linq.Expressions.Expression{System.Func{``0,``4}},System.Linq.Expressions.Expression{System.Func{``0,``5}},System.Linq.Expressions.Expression{System.Func{``0,``6}},System.Linq.Expressions.Expression{System.Func{``0,``7}},System.Func{``0,``2,``3,``4,``5,``6,``7,``1},System.Func{``2},System.Func{``3},System.Func{``4},System.Func{``5},System.Func{``6},System.Func{``7})">
            <summary>
            Produces an observable based on the combined values of the specified properties, including the initial value.  
            
            ** A fallback value may be specified to ensure a notification is received when a value is unobtainable. 
            For example when observing Parent.Child.Age, if Child == null the value is unobtainable as Age is a struct and cannot be set to Null. 
            For an object like Parent.Child.Sibling, sibling is an object so if Child == null, the value null and obtainable and is returned as null.
            </summary>
        </member>
        <member name="T:DynamicData.Binding.ObservableCollectionAdaptor`1">
            <summary>
            Adaptor to reflect a change set into an observable list
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionAdaptor`1.#ctor(DynamicData.Binding.IObservableCollection{`0},System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object" /> class.
            </summary>
            <param name="collection">The collection.</param>
            <param name="refreshThreshold">The refresh threshold.</param>
            <exception cref="T:System.ArgumentNullException">collection</exception>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionAdaptor`1.Adapt(DynamicData.IChangeSet{`0})">
            <summary>
            Maintains the specified collection from the changes
            </summary>
            <param name="changes">The changes.</param>
        </member>
        <member name="T:DynamicData.Binding.ObservableCollectionAdaptor`2">
            <summary>
            Represents an adaptor which is used to update observable collection from
            a changeset stream
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionAdaptor`2.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionAdaptor`2.Adapt(DynamicData.IChangeSet{`0,`1},DynamicData.Binding.IObservableCollection{`0})">
            <summary>
            Maintains the specified collection from the changes
            </summary>
            <param name="changes">The changes.</param>
            <param name="collection">The collection.</param>
        </member>
        <member name="T:DynamicData.Binding.ObservableCollectionEx">
            <summary>
            Extensions to convert an observable collection into a dynamic stream
            </summary>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionEx.ToObservableChangeSet``1(System.Collections.ObjectModel.ObservableCollection{``0})">
            <summary>
            Convert an observable collection into an observable change set.
            Change set observes collection change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionEx.ToObservableChangeSet``2(System.Collections.ObjectModel.ObservableCollection{``0},System.Func{``0,``1})">
            <summary>
            Convert an observable collection into an observable change set.
            Change set observes collection change events.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionEx.ToObservableChangeSet``1(System.Collections.ObjectModel.ReadOnlyObservableCollection{``0})">
            <summary>
            Convert the readonly observable collection into an observable change set.
            Change set observes collection change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionEx.ToObservableChangeSet``2(System.Collections.ObjectModel.ReadOnlyObservableCollection{``0},System.Func{``0,``1})">
            <summary>
            Convert the readonly observable collection into an observable change set.
            Change set observes collection change events.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionEx.ToObservableChangeSet``2(``0)">
            <summary>
            Convert an observable collection into an observable change set.
            Change set observes collection change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <typeparam name="TCollection"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionEx.ObserveCollectionChanges(System.Collections.Specialized.INotifyCollectionChanged)">
            <summary>
            Observes notify collection changed args
            </summary>
        </member>
        <member name="T:DynamicData.Binding.ObservableCollectionExtended`1">
            <summary>
            An override of observable collection which allows the suspension of notifications
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.ObjectModel.ObservableCollection`1"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.#ctor(System.Collections.Generic.List{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.ObjectModel.ObservableCollection`1"/> class that contains elements copied from the specified list.
            </summary>
            <param name="list">The list from which the elements are copied.</param><exception cref="T:System.ArgumentNullException">The <paramref name="list"/> parameter cannot be null.</exception>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.ObjectModel.ObservableCollection`1"/> class that contains elements copied from the specified collection.
            </summary>
            <param name="collection">The collection from which the elements are copied.</param><exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> parameter cannot be null.</exception>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.SuspendNotifications">
            <summary>
            Suspends notifications. When disposed, a reset notification is fired
            </summary>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.SuspendCount">
            <summary>
            Suspends count notifications
            </summary>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Raises the <see cref="E:PropertyChanged" /> event.
            </summary>
            <param name="e">The <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
            <summary>
            Raises the <see cref="E:CollectionChanged" /> event.
            </summary>
            <param name="e">The <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.Load(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Clears the list and Loads the specified items.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds the elements of the specified collection to the end of the collection.
            </summary>
            <param name="collection">The collection whose elements should be added to the end of the List. The collection itself cannot be null, but it can contain elements that are null</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection" /> is null.</exception>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.InsertRange(System.Collections.Generic.IEnumerable{`0},System.Int32)">
            <summary>
            Inserts the elements of a collection into the <see cref="T:System.Collections.Generic.List`1" /> at the specified index.
            </summary>
            <param name="collection">Inserts the items at the specified index</param>
            <param name="index">The zero-based index at which the new elements should be inserted.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection" /> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is less than 0.-or-<paramref name="index" /> is greater than <see cref="P:System.Collections.Generic.List`1.Count" />.</exception>
        </member>
        <member name="M:DynamicData.Binding.ObservableCollectionExtended`1.RemoveRange(System.Int32,System.Int32)">
            <summary>
            Removes a range of elements from the <see cref="T:System.Collections.Generic.List`1"/>.
            </summary>
            <param name="index">The zero-based starting index of the range of elements to remove.</param><param name="count">The number of elements to remove.</param><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.-or-<paramref name="count"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="index"/> and <paramref name="count"/> do not denote a valid range of elements in the <see cref="T:System.Collections.Generic.List`1"/>.</exception>
        </member>
        <member name="T:DynamicData.Binding.PropertyValue`2">
            <summary>
            Container holding sender and latest property value
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
        </member>
        <member name="M:DynamicData.Binding.PropertyValue`2.#ctor(`0,`1)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Binding.PropertyValue`2"/> class.
            </summary>
            <param name="sender">The sender.</param>
            <param name="value">The value.</param>
        </member>
        <member name="P:DynamicData.Binding.PropertyValue`2.Sender">
            <summary>
            The Sender
            </summary>
        </member>
        <member name="P:DynamicData.Binding.PropertyValue`2.Value">
            <summary>
            Latest observed value
            </summary>
        </member>
        <member name="P:DynamicData.Binding.PropertyValue`2.UnobtainableValue">
            <summary>
            Flag to indicated that the value was unobtainable when observing a deeply nested struct
            </summary>
        </member>
        <member name="M:DynamicData.Binding.PropertyValue`2.Equals(DynamicData.Binding.PropertyValue{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Binding.PropertyValue`2.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Binding.PropertyValue`2.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>
            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
            </returns>
        </member>
        <member name="M:DynamicData.Binding.PropertyValue`2.op_Equality(DynamicData.Binding.PropertyValue{`0,`1},DynamicData.Binding.PropertyValue{`0,`1})">
            <summary>
            Implements the operator ==.
            </summary>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:DynamicData.Binding.PropertyValue`2.op_Inequality(DynamicData.Binding.PropertyValue{`0,`1},DynamicData.Binding.PropertyValue{`0,`1})">
            <summary>
            Implements the operator !=.
            </summary>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:DynamicData.Binding.PropertyValue`2.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="T:DynamicData.Binding.SortDirection">
            <summary>
            Sort direction
            </summary>
        </member>
        <member name="F:DynamicData.Binding.SortDirection.Ascending">
            <summary>
            Sort items ascending
            </summary>
        </member>
        <member name="F:DynamicData.Binding.SortDirection.Descending">
            <summary>
            Sort items descending
            </summary>
        </member>
        <member name="T:DynamicData.Binding.SortedBindingListAdaptor`2">
            <summary>
            Represents an adaptor which is used to update a binding list from
            a sorted change set
            </summary>
        </member>
        <member name="M:DynamicData.Binding.SortedBindingListAdaptor`2.#ctor(System.ComponentModel.BindingList{`0},System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Binding.SortedBindingListAdaptor`2.Adapt(DynamicData.ISortedChangeSet{`0,`1})">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Binding.SortedObservableCollectionAdaptor`2">
            <summary>
            Represents an adaptor which is used to update observable collection from
            a sorted change set stream
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Binding.SortedObservableCollectionAdaptor`2.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object" /> class.
            </summary>
            <param name="refreshThreshold">The number of changes before a Reset event is used</param>
        </member>
        <member name="M:DynamicData.Binding.SortedObservableCollectionAdaptor`2.Adapt(DynamicData.ISortedChangeSet{`0,`1},DynamicData.Binding.IObservableCollection{`0})">
            <summary>
            Maintains the specified collection from the changes
            </summary>
            <param name="changes">The changes.</param>
            <param name="collection">The collection.</param>
        </member>
        <member name="T:DynamicData.Binding.SortExpression`1">
            <summary>
            A value expression with sort direction
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.Binding.SortExpression`1.#ctor(System.Func{`0,System.IComparable},DynamicData.Binding.SortDirection)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Binding.SortExpression`1"/> class.
            </summary>
            <param name="expression">The expression.</param>
            <param name="direction">The direction.</param>
        </member>
        <member name="P:DynamicData.Binding.SortExpression`1.Direction">
            <summary>
            Gets or sets the direction.
            </summary>
        </member>
        <member name="P:DynamicData.Binding.SortExpression`1.Expression">
            <summary>
            Gets or sets the expression.
            </summary>
        </member>
        <member name="T:DynamicData.Binding.SortExpressionComparer`1">
            <summary>
            Generic sort expression to help create inline sorting for the .Sort(IComparer comparer) operator
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.Binding.SortExpressionComparer`1.Compare(`0,`0)">
            <summary>
            Compares x and y
            </summary>
            <param name="x">The x.</param>
            <param name="y">The y.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Binding.SortExpressionComparer`1.Ascending(System.Func{`0,System.IComparable})">
            <summary>
            Create an ascending sort expression
            </summary>
            <param name="expression">The expression.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Binding.SortExpressionComparer`1.Descending(System.Func{`0,System.IComparable})">
            <summary>
            Create an descending sort expression.
            </summary>
            <param name="expression">The expression.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Binding.SortExpressionComparer`1.ThenByAscending(System.Func{`0,System.IComparable})">
            <summary>
            Adds an additional ascending sort expression
            </summary>
            <param name="expression">The expression.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Binding.SortExpressionComparer`1.ThenByDescending(System.Func{`0,System.IComparable})">
            <summary>
             Adds an additional descending sort expression
            </summary>
            <param name="expression">The expression.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Change`2">
            <summary>
              Container to describe a single change to a cache
            </summary>
        </member>
        <member name="P:DynamicData.Change`2.Key">
            <summary>
            The unique key of the item which has changed
            </summary>
        </member>
        <member name="P:DynamicData.Change`2.Reason">
            <summary>
            The  reason for the change
            </summary>
        </member>
        <member name="P:DynamicData.Change`2.Current">
            <summary>
            The item which has changed
            </summary>
        </member>
        <member name="P:DynamicData.Change`2.CurrentIndex">
            <summary>
            The current index
            </summary>
        </member>
        <member name="P:DynamicData.Change`2.Previous">
            <summary>
            The previous change.
            
            This is only when Reason==ChangeReason.Replace.
            </summary>
        </member>
        <member name="P:DynamicData.Change`2.PreviousIndex">
            <summary>
            The previous change.
            
            This is only when Reason==ChangeReason.Update or ChangeReason.Move.
            </summary>
        </member>
        <member name="M:DynamicData.Change`2.#ctor(DynamicData.ChangeReason,`1,`0,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Change`2"/> struct.
            </summary>
            <param name="reason">The reason.</param>
            <param name="key">The key.</param>
            <param name="current">The current.</param>
            <param name="index">The index.</param>
        </member>
        <member name="M:DynamicData.Change`2.#ctor(`1,`0,System.Int32,System.Int32)">
            <summary>
            Constructor for ChangeReason.Move
            </summary>
            <param name="key">The key.</param>
            <param name="current">The current.</param>
            <param name="currentIndex">The CurrentIndex.</param>
            <param name="previousIndex">CurrentIndex of the previous.</param>
            <exception cref="T:System.ArgumentException">
            CurrentIndex must be greater than or equal to zero
            or
            PreviousIndex must be greater than or equal to zero
            </exception>
        </member>
        <member name="M:DynamicData.Change`2.#ctor(DynamicData.ChangeReason,`1,`0,DynamicData.Kernel.Optional{`0},System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Change`2"/> struct.
            </summary>
            <param name="reason">The reason.</param>
            <param name="key">The key.</param>
            <param name="current">The current.</param>
            <param name="previous">The previous.</param>
            <param name="currentIndex">Value of the current.</param>
            <param name="previousIndex">Value of the previous.</param>
            <exception cref="T:System.ArgumentException">
            For ChangeReason.Add, a previous value cannot be specified
            or
            For ChangeReason.Change, must supply previous value
            </exception>
        </member>
        <member name="M:DynamicData.Change`2.op_Equality(DynamicData.Change{`0,`1},DynamicData.Change{`0,`1})">
            <summary>
             Determines whether the specified objects are equal
            </summary>
        </member>
        <member name="M:DynamicData.Change`2.op_Inequality(DynamicData.Change{`0,`1},DynamicData.Change{`0,`1})">
            <summary>
             Determines whether the specified objects are equal
            </summary>
        </member>
        <member name="M:DynamicData.Change`2.Equals(DynamicData.Change{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Change`2.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Change`2.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Change`2.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.ChangeAwareCache`2">
            <summary>
            A cache which captures all changes which are made to it. These changes are recorded until CaptureChanges() at which point thw changes are cleared.
            
            Used for creating custom operators
            </summary>
            <seealso cref="T:DynamicData.ICache`2" />
        </member>
        <member name="P:DynamicData.ChangeAwareCache`2.Count">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.ChangeAwareCache`2.KeyValues">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.ChangeAwareCache`2.Items">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.ChangeAwareCache`2.Keys">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.#ctor">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.#ctor(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.#ctor(System.Collections.Generic.Dictionary{`1,`0})">
            <summary>Initializes a new instance of the <see cref="T:System.Object"></see> class.</summary>
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.Lookup(`1)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.Add(`0,`1)">
            <summary>
            Adds the item to the cache without checking whether there is an existing value in the cache
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.AddOrUpdate(`0,`1)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.Remove(System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Removes the item matching the specified keys.
            </summary>
            <param name="keys">The keys.</param>
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.Remove(`1)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.Refresh(System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Raises an evaluate change for the specified keys
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.Refresh">
            <summary>
            Raises an evaluate change for all items in the cache
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.Refresh(`1)">
            <summary>
            Raises an evaluate change for the specified key
            </summary>
            <param name="key">The key.</param>
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.Clear">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.Clone(DynamicData.IChangeSet{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeAwareCache`2.CaptureChanges">
            <summary>
            Create a changeset from recorded changes and clears known changes.
            </summary>
        </member>
        <member name="T:DynamicData.ChangeReason">
            <summary>
             The reason for an individual change.
            
            Used to signal consumers of any changes to the underlying cache
            </summary>
        </member>
        <member name="F:DynamicData.ChangeReason.Add">
            <summary>
             An item has been added
            </summary>
        </member>
        <member name="F:DynamicData.ChangeReason.Update">
            <summary>
             An item has been updated
            </summary>
        </member>
        <member name="F:DynamicData.ChangeReason.Remove">
            <summary>
             An item has removed
            </summary>
        </member>
        <member name="F:DynamicData.ChangeReason.Refresh">
            <summary>
            Downstream operators will refresh
            </summary>
        </member>
        <member name="F:DynamicData.ChangeReason.Moved">
            <summary>
            An item has been moved in a sorted collection
            </summary>
        </member>
        <member name="M:DynamicData.CacheChangeSetEx.ToConcreteType``2(DynamicData.IChangeSet{``0,``1})">
             <summary>
             IChangeSet is flawed because it automatically means allocations when enumerating.
             This extension is a crazy hack to cast to the concrete changeset which means we no longer allocate
             as  change set now inherits from List which has allocation free enumerations. 
            
             IChangeSet will be removed in V7 and instead Change sets will be used directly
            
             In the mean time I am banking that no-one has implemented a custom change set - personally I think it is very unlikely
             </summary>
        </member>
        <member name="T:DynamicData.ChangeSet`2">
            <summary>
            A collection of changes
            </summary>
        </member>
        <member name="F:DynamicData.ChangeSet`2.Empty">
            <summary>
            An empty change set
            </summary>
        </member>
        <member name="M:DynamicData.ChangeSet`2.#ctor">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeSet`2.#ctor(System.Collections.Generic.IEnumerable{DynamicData.Change{`0,`1}})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeSet`2.#ctor(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.ChangeSet`2.Adds">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.ChangeSet`2.Updates">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.ChangeSet`2.Removes">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.ChangeSet`2.Refreshes">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.ChangeSet`2.Moves">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeSet`2.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.ICache`2">
            <summary>
            A cache which captures all changes which are made to it. These changes are recorded until CaptureChanges() at which point thw changes are cleared.
            
            Used for creating custom operators
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <seealso cref="T:DynamicData.IQuery`2" />
        </member>
        <member name="M:DynamicData.ICache`2.Clone(DynamicData.IChangeSet{`0,`1})">
            <summary>
            Clones the cache from the specified changes
            </summary>
            <param name="changes">The changes.</param>
        </member>
        <member name="M:DynamicData.ICache`2.AddOrUpdate(`0,`1)">
            <summary>
            Adds or updates the item using the specified key
            </summary>
            <param name="item">The item.</param>
            <param name="key">The key.</param>
        </member>
        <member name="M:DynamicData.ICache`2.Remove(`1)">
            <summary>
            Removes the item matching the specified key.
            </summary>
            <param name="key">The key.</param>
        </member>
        <member name="M:DynamicData.ICache`2.Remove(System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Removes all items matching the specified keys
            </summary>
        </member>
        <member name="M:DynamicData.ICache`2.Clear">
            <summary>
            Clears all items
            </summary>
        </member>
        <member name="M:DynamicData.ICache`2.Refresh">
            <summary>
            Sends a signal for operators to recalculate it's state 
            </summary>
        </member>
        <member name="M:DynamicData.ICache`2.Refresh(System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Refreshes the items matching the specified keys
            </summary>
            <param name="keys">The keys.</param>
        </member>
        <member name="M:DynamicData.ICache`2.Refresh(`1)">
            <summary>
            Refreshes the item matching the specified key
            </summary>
        </member>
        <member name="T:DynamicData.ICacheUpdater`2">
            <summary>
            Api for updating  an intermediate cache
            
            Use edit to produce singular changeset.
            
            NB:The evaluate method is used to signal to any observing operators
            to  reevaluate whether the the object still matches downstream operators.
            This is primarily targeted to inline object changes such as datetime and calculated fields.
            
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.AddOrUpdate(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`1,`0}})">
            <summary>
            Adds or updates the specified  key value pairs 
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.AddOrUpdate(System.Collections.Generic.KeyValuePair{`1,`0})">
            <summary>
            Adds or updates the specified key value pair
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.AddOrUpdate(`0,`1)">
            <summary>
            Adds or updates the specified item / key pair
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Refresh">
            <summary>
            Sends a signal for operators to recalculate it's state 
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Refresh(System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Refreshes the items matching the specified keys
            </summary>
            <param name="keys">The keys.</param>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Refresh(`1)">
            <summary>
            Refreshes the item matching the specified key
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Evaluate">
            <summary>
            Sends a signal for operators to recalculate it's state 
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Evaluate(System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Refreshes the items matching the specified keys
            </summary>
            <param name="keys">The keys.</param>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Evaluate(`1)">
            <summary>
            Refreshes the item matching the specified key
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Remove(System.Collections.Generic.IEnumerable{`1})">
             <summary>
            Removes the specified keys
             </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.RemoveKeys(System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Overload of remove due to ambiguous method when TObject and TKey are of the same type
            </summary>
            <param name="key">The key.</param>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Remove(`1)">
             <summary>
            Remove the specified keys
             </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.RemoveKey(`1)">
            <summary>
            Overload of remove due to ambiguous method when TObject and TKey are of the same type
            </summary>
            <param name="key">The key.</param>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Remove(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`1,`0}})">
            <summary>
            Removes the specified  key value pairs 
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Remove(System.Collections.Generic.KeyValuePair{`1,`0})">
             <summary>
            Removes the specified key value pair
             </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Update(DynamicData.IChangeSet{`0,`1})">
            <summary>
            Updates using changes using the specified changeset
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Clone(DynamicData.IChangeSet{`0,`1})">
            <summary>
            Clones the change set to the cache
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.Clear">
            <summary>
            Clears all items from the underlying cache.
            </summary>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.GetKey(`0)">
            <summary>
            Gets the key associated with the object
            </summary>
            <param name="item">The item.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ICacheUpdater`2.GetKeyValues(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Gets the key values for the specified items
            </summary>
            <param name="items">The items.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.IChangeSet`2">
            <summary>
            A collection of changes.
            
            Changes are always published in the order.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="P:DynamicData.IChangeSet`2.Updates">
            <summary>
            The number of updates
            </summary>
        </member>
        <member name="T:DynamicData.IChangeSetAdaptor`2">
            <summary>
            A simple adaptor to inject side effects into a changeset observable
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.IChangeSetAdaptor`2.Adapt(DynamicData.IChangeSet{`0,`1})">
            <summary>
            Adapts the specified change.
            </summary>
            <param name="change">The change.</param>
        </member>
        <member name="T:DynamicData.IDistinctChangeSet`1">
            <summary>
            A collection of distinct value updates.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:DynamicData.IGroup`3">
            <summary>
            An update stream which has been grouped by a common key
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TGroupKey">The type of value used to group the original stream</typeparam>
        </member>
        <member name="P:DynamicData.IGroup`3.Cache">
            <summary>
            The observable for the group
            </summary>
            <value>
            The observable.
            </value>
        </member>
        <member name="T:DynamicData.IGroupChangeSet`3">
            <summary>
             A grouped change set
            </summary>
            <typeparam name="TObject">The source object type</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>s
            <typeparam name="TGroupKey">The value on which the stream has been grouped</typeparam>
        </member>
        <member name="T:DynamicData.IGrouping`3">
            <summary>
            Represents a group which provides an update after any value within the group changes
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TGroupKey">The type of the group key.</typeparam>
        </member>
        <member name="P:DynamicData.IGrouping`3.Key">
            <summary>
            Gets the group key
            </summary>
        </member>
        <member name="P:DynamicData.IGrouping`3.Keys">
            <summary>
            Gets the keys.
            </summary>
        </member>
        <member name="P:DynamicData.IGrouping`3.Items">
            <summary>
            Gets the items.
            </summary>
        </member>
        <member name="P:DynamicData.IGrouping`3.KeyValues">
            <summary>
            Gets the items together with their keys
            </summary>
            <value>
            The key values.
            </value>
        </member>
        <member name="P:DynamicData.IGrouping`3.Count">
            <summary>
            Gets the count.
            </summary>
        </member>
        <member name="M:DynamicData.IGrouping`3.Lookup(`1)">
            <summary>
            Lookup a single item using the specified key.
            </summary>
            <remarks>
            Fast indexed lookup
            </remarks>
            <param name="key">The key.</param>
        </member>
        <member name="T:DynamicData.IImmutableGroupChangeSet`3">
            <summary>
             A grouped update collection
            </summary>
            <typeparam name="TObject">The source object type</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>s
            <typeparam name="TGroupKey">The value on which the stream has been grouped</typeparam>
        </member>
        <member name="T:DynamicData.IIntermediateCache`2">
            <summary>
            An observable cache which exposes an update API. 
            
            Intended to be used as a helper for creating custom operators.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.IIntermediateCache`2.Edit(System.Action{DynamicData.ICacheUpdater{`0,`1}})">
            <summary>
            Action to apply a batch update to a cache. Multiple update methods can be invoked within a single batch operation.
            These operations are invoked within the cache's lock and is therefore thread safe.
            The result of the action will produce a single changeset
            </summary>
            <param name="updateAction">The update action.</param>
        </member>
        <member name="T:DynamicData.IKeyValue`2">
            <summary>
            A keyed value
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="P:DynamicData.IKeyValue`2.Value">
            <summary>
            The value
            </summary>
        </member>
        <member name="T:DynamicData.IKey`1">
            <summary>
            Represents the key of an object
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="P:DynamicData.IKey`1.Key">
            <summary>
            The key 
            </summary>
        </member>
        <member name="T:DynamicData.IKeyValueCollection`2">
            <summary>
            A key collection which contains sorting information.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="P:DynamicData.IKeyValueCollection`2.Comparer">
            <summary>
            Gets the comparer used to peform the sort
            </summary>
            <value>
            The comparer.
            </value>
        </member>
        <member name="P:DynamicData.IKeyValueCollection`2.Count">
            <summary>
            The count of items.
            </summary>
            <value>
            The count.
            </value>
        </member>
        <member name="P:DynamicData.IKeyValueCollection`2.SortReason">
            <summary>
            Gets the reason for a sort being applied.
            </summary>
            <value>
            The sort reason.
            </value>
        </member>
        <member name="P:DynamicData.IKeyValueCollection`2.Optimisations">
            <summary>
            Gets the optimisations used to produce the sort
            </summary>
            <value>
            The optimisations.
            </value>
        </member>
        <member name="P:DynamicData.IKeyValueCollection`2.Item(System.Int32)">
            <summary>
            Gets the element at the specified index in the read-only list.
            </summary>
            
            <returns>
            The element at the specified index in the read-only list.
            </returns>
            <param name="index">The zero-based index of the element to get. </param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.IndexedItem`2">
            <summary>
            An item with it's index
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.IndexedItem`2.#ctor(`0,`1,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.IndexedItem`2"/> class.
            </summary>
            <param name="value">The value.</param>
            <param name="key">The key.</param>
            <param name="index">The index.</param>
        </member>
        <member name="P:DynamicData.IndexedItem`2.Index">
            <summary>
            Gets the index.
            </summary>
        </member>
        <member name="P:DynamicData.IndexedItem`2.Value">
            <summary>
            Gets the value.
            </summary>
        </member>
        <member name="P:DynamicData.IndexedItem`2.Key">
            <summary>
            Gets the key.
            </summary>
        </member>
        <member name="M:DynamicData.IndexedItem`2.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.IndexedItem`2.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.IndexedItem`2.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.IntermediateCache`2">
            <summary>
            Cache designed to be used for custom operator construction. It requires no key to be specified 
            but instead relies on the user specifying the key when amending data
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.IntermediateCache`2.#ctor(System.IObservable{DynamicData.IChangeSet{`0,`1}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.IntermediateCache`2"/> class.
            </summary>
            <param name="source">The source.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.IntermediateCache`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.IntermediateCache`2"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.IntermediateCache`2.Edit(System.Action{DynamicData.ICacheUpdater{`0,`1}})">
            <summary>
            Action to apply a batch update to a cache. Multiple update methods can be invoked within a single batch operation.
            These operations are invoked within the cache's lock and is therefore thread safe.
            The result of the action will produce a single changeset
            </summary>
            <param name="updateAction">The update action.</param>
        </member>
        <member name="P:DynamicData.IntermediateCache`2.CountChanged">
            <summary>
            A count changed observable starting with the current count
            </summary>
        </member>
        <member name="M:DynamicData.IntermediateCache`2.Connect(System.Func{`0,System.Boolean})">
            <summary>
            Returns a filtered changeset of cache changes preceded with the initial state
            </summary>
            <param name="predicate">The predicate.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.IntermediateCache`2.Connect">
            <summary>
            Returns a observable of cache changes preceded with the initial cache state
            </summary>
            <returns></returns>
        </member>
        <member name="M:DynamicData.IntermediateCache`2.Preview(System.Func{`0,System.Boolean})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.IntermediateCache`2.Watch(`1)">
            <summary>
            Returns an observable of any changes which match the specified key. The sequence starts with the initial item in the cache (if there is one).
            </summary>
            <param name="key">The key.</param>
            <returns></returns>
        </member>
        <member name="P:DynamicData.IntermediateCache`2.Count">
            <summary>
            The total count of cached items
            </summary>
        </member>
        <member name="P:DynamicData.IntermediateCache`2.Items">
            <summary>
            Gets the Items
            </summary>
        </member>
        <member name="P:DynamicData.IntermediateCache`2.KeyValues">
            <summary>
            Gets the key value pairs
            </summary>
        </member>
        <member name="P:DynamicData.IntermediateCache`2.Keys">
            <summary>
            Gets the keys
            </summary>
        </member>
        <member name="M:DynamicData.IntermediateCache`2.Lookup(`1)">
            <summary>
            Lookup a single item using the specified key.
            </summary>
            <remarks>
            Fast indexed lookup
            </remarks>
            <param name="key">The key.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.IntermediateCache`2.Dispose">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.AbstractFilter`2.UpdateWithFilter.#ctor(System.Boolean,DynamicData.Change{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.Cache`2.Refresh">
            <summary>
            Sends a signal for operators to recalculate it's state 
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.Cache`2.Refresh(System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Refreshes the items matching the specified keys
            </summary>
            <param name="keys">The keys.</param>
        </member>
        <member name="M:DynamicData.Cache.Internal.Cache`2.Refresh(`1)">
            <summary>
            Refreshes the item matching the specified key
            </summary>
        </member>
        <member name="T:DynamicData.Cache.Internal.CombineOperator">
            <summary>
            How the multiple streams are combinedL
            </summary>
        </member>
        <member name="F:DynamicData.Cache.Internal.CombineOperator.And">
            <summary>
            Apply a logical And between two or more observable change sets
            </summary>
        </member>
        <member name="F:DynamicData.Cache.Internal.CombineOperator.Or">
            <summary>
            Apply a logical Or between two or more observable change sets
            </summary>
        </member>
        <member name="F:DynamicData.Cache.Internal.CombineOperator.Xor">
            <summary>
            Apply a logical Xor between two or more observable change sets
            </summary>
        </member>
        <member name="F:DynamicData.Cache.Internal.CombineOperator.Except">
            <summary>
            Include the items in the first changeset and exclude any items belonging to the other
            </summary>
        </member>
        <member name="T:DynamicData.Cache.Internal.Combiner`2">
            <summary>
                Combines multiple caches using logical operators
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.ExpirableItem`2.Equals(DynamicData.Cache.Internal.ExpirableItem{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Cache.Internal.ExpirableItem`2.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Cache.Internal.ExpirableItem`2.GetHashCode">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Cache.Internal.IndexCalculator`2">
            <summary>
            Calculates a sequential change set.
            
            This enables the binding infrastructure to simply iterate the change set
            and apply indexed changes with no need to apply ant expensive IndexOf() operations.
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.IndexCalculator`2.#ctor(DynamicData.Cache.Internal.KeyValueComparer{`0,`1},DynamicData.SortOptimisations)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.IndexCalculator`2.Load(DynamicData.ChangeAwareCache{`0,`1})">
            <summary>
            Initialises the specified changes.
            </summary>
            <param name="cache">The cache.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Cache.Internal.IndexCalculator`2.Reset(DynamicData.ChangeAwareCache{`0,`1})">
            <summary>
            Initialises the specified changes.
            </summary>
            <param name="cache">The cache.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Cache.Internal.IndexCalculator`2.Calculate(DynamicData.IChangeSet{`0,`1})">
            <summary>
            Dynamic calculation of moved items which produce a result which can be enumerated through in order
            </summary>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Cache.Internal.KeySelectorException">
            <summary>
            An exception that happens when there is a problem with the key selector.
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.KeySelectorException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Exception"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.KeySelectorException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Exception"/> class with a specified error message.
            </summary>
            <param name="message">The message that describes the error. </param>
        </member>
        <member name="M:DynamicData.Cache.Internal.KeySelectorException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Exception"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">The error message that explains the reason for the exception. </param><param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. </param>
        </member>
        <member name="P:DynamicData.Cache.Internal.KeyValueCollection`2.Comparer">
            <summary>
            Gets the comparer used to peform the sort
            </summary>
            <value>
            The comparer.
            </value>
        </member>
        <member name="T:DynamicData.Cache.Internal.LockFreeObservableCache`2">
            <summary>
            An observable cache which exposes an update API. Used at the root
            of all observable chains
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Cache.Internal.LockFreeObservableCache`2.#ctor(System.IObservable{DynamicData.IChangeSet{`0,`1}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Cache.Internal.LockFreeObservableCache`2"/> class.
            </summary>
            <param name="source">The source.</param>
        </member>
        <member name="M:DynamicData.Cache.Internal.LockFreeObservableCache`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Cache.Internal.LockFreeObservableCache`2"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.LockFreeObservableCache`2.Connect(System.Func{`0,System.Boolean})">
            <summary>
            Returns a observable of cache changes preceded with the initial cache state
            </summary>
            <param name="predicate">The result will be filtered using the specified predicate.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Cache.Internal.LockFreeObservableCache`2.Preview(System.Func{`0,System.Boolean})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Cache.Internal.LockFreeObservableCache`2.Watch(`1)">
            <summary>
            Returns an observable of any changes which match the specified key. The sequence starts with the initial item in the cache (if there is one).
            </summary>
            <param name="key">The key.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Cache.Internal.LockFreeObservableCache`2.Edit(System.Action{DynamicData.ICacheUpdater{`0,`1}})">
            <summary>
            Edits the specified edit action.
            </summary>
            <param name="editAction">The edit action.</param>
        </member>
        <member name="P:DynamicData.Cache.Internal.LockFreeObservableCache`2.CountChanged">
            <summary>
            A count changed observable starting with the current count
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.LockFreeObservableCache`2.Lookup(`1)">
            <summary>
            Lookup a single item using the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns></returns>
            <remarks>
            Fast indexed lookup
            </remarks>
        </member>
        <member name="P:DynamicData.Cache.Internal.LockFreeObservableCache`2.Keys">
            <summary>
            Gets the keys
            </summary>
        </member>
        <member name="P:DynamicData.Cache.Internal.LockFreeObservableCache`2.KeyValues">
            <summary>
            Gets the key value pairs
            </summary>
        </member>
        <member name="P:DynamicData.Cache.Internal.LockFreeObservableCache`2.Items">
            <summary>
            Gets the Items
            </summary>
        </member>
        <member name="P:DynamicData.Cache.Internal.LockFreeObservableCache`2.Count">
            <summary>
            The total count of cached items
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.LockFreeObservableCache`2.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="M:DynamicData.Cache.Internal.ManagedGroup`3.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>; otherwise, false.
            </returns>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:System.Object"/>. </param>
        </member>
        <member name="M:DynamicData.Cache.Internal.ManagedGroup`3.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"/>.
            </returns>
        </member>
        <member name="M:DynamicData.Cache.Internal.ManagedGroup`3.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </returns>
        </member>
        <member name="M:DynamicData.Cache.Internal.RemoveKeyEnumerator`2.#ctor(DynamicData.IChangeSet{`0,`1},DynamicData.IExtendedList{`0})">
            <summary>Converts a <see cref="T:DynamicData.Change`2"/> to <see cref="T:DynamicData.ChangeSet`1"/></summary>
            <param name="source">The changeset with a key</param>
            <param name="list">
            An optional list, if provided it allows the refresh from a key based cache to find the index for the resulting list based refresh.
            If not provided a refresh will dropdown to a replace which may ultimately result in a remove+add change downstream.
            </param>
        </member>
        <member name="M:DynamicData.Cache.Internal.RemoveKeyEnumerator`2.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException"></exception>
        </member>
        <member name="M:DynamicData.Cache.Internal.Sort`2.Sorter.Sort(DynamicData.IChangeSet{`0,`1})">
            <summary>
            Sorts the specified changes. Will return null if there are no changes
            </summary>
            <param name="changes">The changes.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Cache.Internal.Sort`2.Sorter.Sort(System.Collections.Generic.IComparer{`0})">
            <summary>
            Sorts all data using the specified comparer
            </summary>
            <param name="comparer">The comparer.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Cache.Internal.Sort`2.Sorter.Sort">
            <summary>
            Sorts all data using the current comparer
            </summary>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Cache.Internal.Sort`2.Sorter.DoSort(DynamicData.SortReason,DynamicData.IChangeSet{`0,`1})">
            <summary>
            Sorts using the specified sorter. Will return null if there are no changes
            </summary>
            <param name="sortReason">The sort reason.</param>
            <param name="changes">The changes.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.IConnectableCache`2">
            <summary>
            A cache for observing and querying in memory data
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.IConnectableCache`2.Watch(`1)">
            <summary>
            Returns an observable of any changes which match the specified key.  The sequence starts with the initial item in the cache (if there is one).
            </summary>
            <param name="key">The key.</param>
        </member>
        <member name="M:DynamicData.IConnectableCache`2.Connect(System.Func{`0,System.Boolean})">
            <summary>
            Returns a filtered stream of cache changes preceded with the initial filtered state
            </summary>
            <param name="predicate">The result will be filtered using the specified predicate.</param>
        </member>
        <member name="M:DynamicData.IConnectableCache`2.Preview(System.Func{`0,System.Boolean})">
            <summary>
            Returns a filtered stream of cache changes.
            Unlike Connect(), the returned observable is not prepended with the caches initial items.
            </summary>
            <param name="predicate">The result will be filtered using the specified predicate.</param>
        </member>
        <member name="P:DynamicData.IConnectableCache`2.CountChanged">
            <summary>
            A count changed observable starting with the current count
            </summary>
        </member>
        <member name="T:DynamicData.IObservableCache`2">
            <summary>
              /// A cache for observing and querying in memory data. With additional data access operators
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="P:DynamicData.IObservableCache`2.Keys">
            <summary>
            Gets the keys
            </summary>
        </member>
        <member name="P:DynamicData.IObservableCache`2.Items">
            <summary>
            Gets the Items
            </summary>
        </member>
        <member name="P:DynamicData.IObservableCache`2.KeyValues">
            <summary>
            Gets the key value pairs
            </summary>
        </member>
        <member name="M:DynamicData.IObservableCache`2.Lookup(`1)">
            <summary>
            Lookup a single item using the specified key.
            </summary>
            <remarks>
            Fast indexed lookup
            </remarks>
            <param name="key">The key.</param>
            <returns></returns>
        </member>
        <member name="P:DynamicData.IObservableCache`2.Count">
            <summary>
            The total count of cached items
            </summary>
        </member>
        <member name="T:DynamicData.IPagedChangeSet`2">
            <summary>
            A paged update collection
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="P:DynamicData.IPagedChangeSet`2.Response">
            <summary>
            The parameters used to virtualise the stream
            </summary>
        </member>
        <member name="T:DynamicData.IPageRequest">
            <summary>
            Represents a new page request
            </summary>
        </member>
        <member name="P:DynamicData.IPageRequest.Page">
            <summary>
            The page to move to
            </summary>
        </member>
        <member name="P:DynamicData.IPageRequest.Size">
            <summary>
            The page size
            </summary>
        </member>
        <member name="T:DynamicData.Operators.IPageResponse">
            <summary>
            Response from the pagation operator
            </summary>
        </member>
        <member name="P:DynamicData.Operators.IPageResponse.PageSize">
            <summary>
            The size of the page.
            </summary>
        </member>
        <member name="P:DynamicData.Operators.IPageResponse.Page">
            <summary>
            The current page
            </summary>
        </member>
        <member name="P:DynamicData.Operators.IPageResponse.Pages">
            <summary>
            Total number of pages.
            </summary>
        </member>
        <member name="P:DynamicData.Operators.IPageResponse.TotalSize">
            <summary>
            The total number of records in the underlying cache
            </summary>
        </member>
        <member name="T:DynamicData.IQuery`2">
            <summary>
            Exposes internal cache state to enable querying
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.IQuery`2.Lookup(`1)">
            <summary>
            Lookup a single item using the specified key.
            </summary>
            <remarks>
            Fast indexed lookup
            </remarks>
            <param name="key">The key.</param>
        </member>
        <member name="P:DynamicData.IQuery`2.Keys">
            <summary>
            Gets the keys.
            </summary>
        </member>
        <member name="P:DynamicData.IQuery`2.Items">
            <summary>
            Gets the items.
            </summary>
        </member>
        <member name="P:DynamicData.IQuery`2.KeyValues">
            <summary>
            Gets the items together with their keys
            </summary>
            <value>
            The key values.
            </value>
        </member>
        <member name="P:DynamicData.IQuery`2.Count">
            <summary>
            Gets the count.
            </summary>
        </member>
        <member name="T:DynamicData.ISortedChangeSet`2">
            <summary>
            An update collection as per the system convention additionally providing a sorted set of the underling state
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="P:DynamicData.ISortedChangeSet`2.SortedItems">
            <summary>
            All cached items in sort order
            </summary>
        </member>
        <member name="T:DynamicData.ISortedChangeSetAdaptor`2">
            <summary>
            A simple adaptor to inject side effects into a sorted changeset observable
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.ISortedChangeSetAdaptor`2.Adapt(DynamicData.ISortedChangeSet{`0,`1})">
            <summary>
            Adapts the specified change.
            </summary>
            <param name="change">The change.</param>
        </member>
        <member name="T:DynamicData.ISourceCache`2">
            <summary>
            An observable cache which exposes an update API.  Used at the root
            of all observable chains
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.ISourceCache`2.Edit(System.Action{DynamicData.ISourceUpdater{`0,`1}})">
            <summary>
            Action to apply a batch update to a cache. Multiple update methods can be invoked within a single batch operation.
            These operations are invoked within the cache's lock and is therefore thread safe.
            The result of the action will produce a single changeset
            </summary>
            <param name="updateAction">The update action.</param>
        </member>
        <member name="P:DynamicData.ISourceCache`2.KeySelector">
            <summary>
            Key selector used by the cache to retrieve keys from objects
            </summary>
        </member>
        <member name="T:DynamicData.ISourceUpdater`2">
            <summary>
            API for updating a source cache.
            
            Use edit to produce singular changeset.
            
            NB: The evaluate method is used to signal to any observing operators
            to reevaluate whether the the object still matches downstream operators.
            This is primarily targeted to inline object changes such as datetime and calculated fields.
            
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.ISourceUpdater`2.Load(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Clears existing values and loads the specified items.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="M:DynamicData.ISourceUpdater`2.AddOrUpdate(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds or changes the specified items.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="M:DynamicData.ISourceUpdater`2.AddOrUpdate(`0)">
            <summary>
            Adds or updates the item.
            </summary>
            <param name="item">The item.</param>
        </member>
        <member name="M:DynamicData.ISourceUpdater`2.AddOrUpdate(`0,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Adds or updates the item using a comparer.
            </summary>
            <param name="item">The item.</param>
            <param name="comparer">The comparer.</param>
        </member>
        <member name="M:DynamicData.ISourceUpdater`2.Refresh(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Refreshes the specified items.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="M:DynamicData.ISourceUpdater`2.Refresh(`0)">
            <summary>
            Refreshes the specified item.
            </summary>
            <param name="item">The item.</param>
        </member>
        <member name="M:DynamicData.ISourceUpdater`2.Evaluate(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Refreshes the specified items.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="M:DynamicData.ISourceUpdater`2.Evaluate(`0)">
            <summary>
            Refreshes the specified item.
            </summary>
            <param name="item">The item.</param>
        </member>
        <member name="M:DynamicData.ISourceUpdater`2.Remove(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Removes the specified items.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="M:DynamicData.ISourceUpdater`2.Remove(`0)">
            <summary>
            Removes the specified item.
            </summary>
            <param name="item">The item.</param>
        </member>
        <member name="T:DynamicData.IVirtualChangeSet`2">
            <summary>
            Represents a subset of data reduced by a defined set of parameters
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="P:DynamicData.IVirtualChangeSet`2.Response">
            <summary>
            The parameters used to virtualise the stream
            </summary>
        </member>
        <member name="T:DynamicData.IVirtualResponse">
            <summary>
            Defines values used to virtualise the result set
            </summary>
        </member>
        <member name="P:DynamicData.IVirtualResponse.Size">
            <summary>
            The requested size of the virtualised data
            </summary>
        </member>
        <member name="P:DynamicData.IVirtualResponse.StartIndex">
            <summary>
            The start index.
            </summary>
            
        </member>
        <member name="P:DynamicData.IVirtualResponse.TotalSize">
            <summary>
            Gets the total size of the underlying cache
            </summary>
            <value>
            The total size.
            </value>
        </member>
        <member name="T:DynamicData.IVirtualRequest">
            <summary>
            A request to virtualise a stream
            </summary>
        </member>
        <member name="P:DynamicData.IVirtualRequest.Size">
            <summary>
            The number of records to return
            </summary>
        </member>
        <member name="P:DynamicData.IVirtualRequest.StartIndex">
            <summary>
            The start index
            </summary>
        </member>
        <member name="T:DynamicData.MissingKeyException">
            <summary>
            Thrown when a key is expected in a cache but not found
            </summary>
        </member>
        <member name="M:DynamicData.MissingKeyException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.MissingKeyException"/> class.
            </summary>
            <param name="message">The message that describes the error.</param>
        </member>
        <member name="M:DynamicData.MissingKeyException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.MissingKeyException"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.MissingKeyException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.MissingKeyException"/> class.
            </summary>
            <param name="message">The message that describes the error.</param>
            <param name="innerException">A inner exception with further information.</param>
        </member>
        <member name="T:DynamicData.Node`2">
            <summary>
            Node describing the relationship between and item and it's ancestors and descendent
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Node`2.#ctor(`0,`1)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Node`2"/> class.
            </summary>
            <param name="item">The item.</param>
            <param name="key">The key.</param>
        </member>
        <member name="M:DynamicData.Node`2.#ctor(`0,`1,DynamicData.Kernel.Optional{DynamicData.Node{`0,`1}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Node`2"/> class.
            </summary>
            <param name="item">The item.</param>
            <param name="key">The key.</param>
            <param name="parent">The parent.</param>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="P:DynamicData.Node`2.Item">
            <summary>
            The item
            </summary>
        </member>
        <member name="P:DynamicData.Node`2.Key">
            <summary>
            The key
            </summary>
        </member>
        <member name="P:DynamicData.Node`2.Parent">
            <summary>
            Gets the parent if it has one
            </summary>
        </member>
        <member name="P:DynamicData.Node`2.Children">
            <summary>
            The child nodes
            </summary>
        </member>
        <member name="P:DynamicData.Node`2.IsRoot">
            <summary>
            Gets or sets a value indicating whether this instance is root.
            </summary>
            <value>
              <c>true</c> if this instance is root node; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:DynamicData.Node`2.Depth">
            <summary>
            Gets the depth i.e. how many degrees of separation from the parent
             </summary>
        </member>
        <member name="M:DynamicData.Node`2.Equals(DynamicData.Node{`0,`1})">
            <summary>Determines whether the specified object is equal to the current object.</summary>
            <returns>true if the specified object  is equal to the current object; otherwise, false.</returns>
            <param name="other">The object to compare with the current object. </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:DynamicData.Node`2.Equals(System.Object)">
            <summary>Determines whether the specified object is equal to the current object.</summary>
            <returns>true if the specified object  is equal to the current object; otherwise, false.</returns>
            <param name="obj">The object to compare with the current object. </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:DynamicData.Node`2.GetHashCode">
            <summary>Serves as the default hash function. </summary>
            <returns>A hash code for the current object.</returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:DynamicData.Node`2.op_Equality(DynamicData.Node{`0,`1},DynamicData.Node{`0,`1})">
            <summary>
             Determines whether the specified objects are equal
            </summary>
        </member>
        <member name="M:DynamicData.Node`2.op_Inequality(DynamicData.Node{`0,`1},DynamicData.Node{`0,`1})">
            <summary>
             Determines whether the specified objects are not equal
            </summary>
        </member>
        <member name="M:DynamicData.Node`2.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="M:DynamicData.Node`2.Dispose">
            <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:DynamicData.ObservableCacheEx">
            <summary>
            Extensions for dynamic data
            </summary>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.FinallySafe``1(System.IObservable{``0},System.Action)">
            <summary>
            Ensure that finally is always called. Thanks to Lee Campbell for this
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="finallyAction">The finally action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.RefCount``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Cache equivalent to Publish().RefCount().  The source is cached so long as there is at least 1 subscriber.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the destination key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.MonitorStatus``1(System.IObservable{``0})">
            <summary>
            Monitors the status of a stream
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.NotEmpty``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Supresses updates which are empty
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.NotEmpty_Experiment``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Supresses updates which are empty. However it will produce a notification for the first change.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Flatten``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Flattens an update collection to it's individual items
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ForEachChange``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Action{DynamicData.Change{``0,``1}})">
            <summary>
            Provides a call back for each change
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.IgnoreSameReferenceUpdate``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Ignores updates when the update is the same reference
            </summary>
            <typeparam name="TObject"></typeparam>
            <typeparam name="TKey"></typeparam>
            <param name="source"></param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.IgnoreUpdateWhen``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``0,System.Boolean})">
            <summary>
            Ignores the update when the condition is met.
            The first parameter in the ignore function is the current value and the second parameter is the previous value
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="ignoreFunction">The ignore function (current,previous)=>{ return true to ignore }.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.IncludeUpdateWhen``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``0,System.Boolean})">
            <summary>
            Only includes the update when the condition is met.
            The first parameter in the ignore function is the current value and the second parameter is the previous value
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="includeFunction">The include function (current,previous)=>{ return true to include }.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.MergeManyItems``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.IObservable{``2}})">
            <summary>
            Dynamically merges the observable which is selected from each item in the stream, and unmerges the item
            when it is no longer part of the stream.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="observableSelector">The observable selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            observableSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.MergeManyItems``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``1,System.IObservable{``2}})">
            <summary>
            Dynamically merges the observable which is selected from each item in the stream, and unmerges the item
            when it is no longer part of the stream.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="observableSelector">The observable selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            observableSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.MergeMany``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.IObservable{``2}})">
            <summary>
            Dynamically merges the observable which is selected from each item in the stream, and unmerges the item
            when it is no longer part of the stream.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="observableSelector">The observable selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            observableSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.MergeMany``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``1,System.IObservable{``2}})">
            <summary>
            Dynamically merges the observable which is selected from each item in the stream, and unmerges the item
            when it is no longer part of the stream.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="observableSelector">The observable selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            observableSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.WhenValueChanged``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Boolean)">
            <summary>
            Watches each item in the collection and notifies when any of them has changed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="propertyAccessor">The property accessor.</param>
            <param name="notifyOnInitialValue">if set to <c>true</c> [notify on initial value].</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.WhenPropertyChanged``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Boolean)">
            <summary>
            Watches each item in the collection and notifies when any of them has changed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="propertyAccessor">The property accessor.</param>
            <param name="notifyOnInitialValue">if set to <c>true</c> [notify on initial value].</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.WhenAnyPropertyChanged``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.String[])">
            <summary>
            Watches each item in the collection and notifies when any of them has changed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="propertiesToMonitor">specify properties to Monitor, or omit to monitor all property changes</param>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.SubscribeMany``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.IDisposable})">
            <summary>
            Subscribes to each item when it is added to the stream and unsubcribes when it is removed.  All items will be unsubscribed when the stream is disposed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="subscriptionFactory">The subsription function</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            subscriptionFactory</exception>
            <remarks>
            Subscribes to each item when it is added or updates and unsubcribes when it is removed
            </remarks>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.SubscribeMany``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``1,System.IDisposable})">
            <summary>
            Subscribes to each item when it is added to the stream and unsubcribes when it is removed.  All items will be unsubscribed when the stream is disposed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="subscriptionFactory">The subsription function</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            subscriptionFactory</exception>
            <remarks>
            Subscribes to each item when it is added or updates and unsubcribes when it is removed
            </remarks>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.OnItemAdded``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Action{``0})">
            <summary>
            Callback for each item as and when it is being added to the stream
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="addAction">The add action.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.OnItemRemoved``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Action{``0})">
            <summary>
            Callback for each item as and when it is being removed from the stream
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="removeAction">The remove action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            removeAction
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.OnItemUpdated``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Action{``0,``0})">
            <summary>
            Callback when an item has been updated eg. (current, previous)=>{} 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="updateAction">The update action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.DisposeMany``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Disposes each item when no longer required.
            
            Individual items are disposed when removed or replaced. All items
            are disposed when the stream is disposed
            </summary>
            <remarks>
            </remarks>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns>A continuation of the original stream</returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.WhereReasonsAre``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},DynamicData.ChangeReason[])">
            <summary>
            Includes changes for the specified reasons only
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="reasons">The reasons.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">reasons</exception>
            <exception cref="T:System.ArgumentException">Must select at least on reason</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.WhereReasonsAreNot``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},DynamicData.ChangeReason[])">
            <summary>
            Excludes updates for the specified reasons
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="reasons">The reasons.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">reasons</exception>
            <exception cref="T:System.ArgumentException">Must select at least on reason</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.AutoRefresh``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically refresh downstream operators when any properties change.
            </summary>
            <param name="source">The source observable</param>
            <param name="changeSetBuffer">Batch up changes by specifying the buffer. This greatly increases performance when many elements have sucessive property changes</param>
            <param name="propertyChangeThrottle">When observing on multiple property changes, apply a throttle to prevent excessive refesh invocations</param>
            <param name="scheduler">The scheduler</param>
            <returns>An observable change set with additional refresh changes</returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.AutoRefresh``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically refresh downstream operators when properties change.
            </summary>
            <param name="source">The source observable</param>
            <param name="propertyAccessor">Specify a property to observe changes. When it changes a Refresh is invoked</param>
            <param name="changeSetBuffer">Batch up changes by specifying the buffer. This greatly increases performance when many elements have sucessive property changes</param>
            <param name="propertyChangeThrottle">When observing on multiple property changes, apply a throttle to prevent excessive refesh invocations</param>
            <param name="scheduler">The scheduler</param>
            <returns>An observable change set with additional refresh changes</returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.AutoRefreshOnObservable``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.IObservable{``2}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically refresh downstream operator. The refresh is triggered when the observable receives a notification
            </summary>
            <param name="source">The source observable change set</param>
            <param name="reevaluator">An observable which acts on items within the collection and produces a value when the item should be refreshed</param>
            <param name="changeSetBuffer">Batch up changes by specifying the buffer. This greatly increases performance when many elements require a refresh</param>
            <param name="scheduler">The scheduler</param>
            <returns>An observable change set with additional refresh changes</returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.AutoRefreshOnObservable``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``1,System.IObservable{``2}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically refresh downstream operator. The refresh is triggered when the observable receives a notification
            </summary>
            <param name="source">The source observable change set</param>
            <param name="reevaluator">An observable which acts on items within the collection and produces a value when the item should be refreshed</param>
            <param name="changeSetBuffer">Batch up changes by specifying the buffer. This g  reatly increases performance when many elements require a refresh</param>
            <param name="scheduler">The scheduler</param>
            <returns>An observable change set with additional refresh changes</returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.SupressRefresh``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Supress  refresh notifications
            </summary>
            <param name="source">The source observable change set</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.StartWithEmpty``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Prepends an empty changeset to the source
            </summary>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.StartWithEmpty``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}})">
            <summary>
            Prepends an empty changeset to the source
            </summary>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.StartWithEmpty``2(System.IObservable{DynamicData.IVirtualChangeSet{``0,``1}})">
            <summary>
            Prepends an empty changeset to the source
            </summary>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.StartWithEmpty``2(System.IObservable{DynamicData.IPagedChangeSet{``0,``1}})">
            <summary>
            Prepends an empty changeset to the source
            </summary>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.StartWithEmpty``3(System.IObservable{DynamicData.IGroupChangeSet{``0,``1,``2}})">
            <summary>
            Prepends an empty changeset to the source
            </summary>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.StartWithEmpty``3(System.IObservable{DynamicData.IImmutableGroupChangeSet{``0,``1,``2}})">
            <summary>
            Prepends an empty changeset to the source
            </summary>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.StartWithEmpty``1(System.IObservable{System.Collections.Generic.IReadOnlyCollection{``0}})">
            <summary>
            Prepends an empty changeset to the source
            </summary>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.RemoveKey``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Removes the key which enables all observable list features of dynamic data
            </summary>
            <remarks>
            All indexed changes are dropped i.e. sorting is not supported by this function
            </remarks>
            <typeparam name="TObject">The type of  object.</typeparam>
            <typeparam name="TKey">The type of  key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ChangeKey``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2})">
            <summary>
            Changes the primary key.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TSourceKey">The type of the source key.</typeparam>
            <typeparam name="TDestinationKey">The type of the destination key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector eg. (item) => newKey;</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ChangeKey``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``1,``0,``2})">
            <summary>
            Changes the primary key.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TSourceKey">The type of the source key.</typeparam>
            <typeparam name="TDestinationKey">The type of the destination key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector eg. (key, item) => newKey;</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Convert``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2})">
            <summary>
            Convert the object using the sepcified conversion function.
            This is a lighter equivalent of Transform and is designed to be used with non-disposable objects
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="conversionFactory">The conversion factory.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Cast``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2})">
            <summary>
            Cast the object to the specified type. 
            Alas, I had to add the converter due to type inference issues 
            </summary>
            <typeparam name="TSource">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="converter">The conversion factory.</param>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.BufferInitial``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.TimeSpan,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Buffers changes for an intial period only. After the period has elapsed, not further buffering occurs. 
            </summary>
            <param name="source">The source changeset</param>
            <param name="initalBuffer">The period to buffer, measure from the time that the first item arrives</param>
            <param name="scheduler">The scheduler to buffer on</param>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Batch``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.TimeSpan,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Batches the updates for the specified time period
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="timeSpan">The time span.</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            scheduler</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.FlattenBufferResult``2(System.IObservable{System.Collections.Generic.IList{DynamicData.IChangeSet{``0,``1}}})">
            <summary>
            Convert the result of a buffer operation to a single change set
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.BatchIf``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Boolean},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received.
            When a resume signal has been received the batched updates will  be fired.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="pauseIfTrueSelector">When true, observable begins to buffer and when false, window closes and buffered result if notified</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.BatchIf``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Boolean},System.Boolean,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received.
            When a resume signal has been received the batched updates will  be fired.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="pauseIfTrueSelector">When true, observable begins to buffer and when false, window closes and buffered result if notified</param>
            <param name="intialPauseState">if set to <c>true</c> [intial pause state].</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.BatchIf``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Boolean},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received.
            When a resume signal has been received the batched updates will  be fired.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="pauseIfTrueSelector">When true, observable begins to buffer and when false, window closes and buffered result if notified</param>
            <param name="timeOut">Specify a time to ensure the buffer window does not stay open for too long. On completion buffering will cease</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.BatchIf``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Boolean},System.Boolean,System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received.
            When a resume signal has been received the batched updates will  be fired.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="pauseIfTrueSelector">When true, observable begins to buffer and when false, window closes and buffered result if notified</param>
            <param name="intialPauseState">if set to <c>true</c> [intial pause state].</param>
            <param name="timeOut">Specify a time to ensure the buffer window does not stay open for too long. On completion buffering will cease</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.BatchIf``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Boolean},System.Boolean,System.IObservable{System.Reactive.Unit},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received.
            When a resume signal has been received the batched updates will  be fired.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="pauseIfTrueSelector">When true, observable begins to buffer and when false, window closes and buffered result if notified</param>
            <param name="intialPauseState">if set to <c>true</c> [intial pause state].</param>
            <param name="timer">Specify a time observable. The buffer will be emptied each time the timer produces a value and when it completes. On completion buffering will cease</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.SkipInitial``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Defer the subscribtion until loaded and skip initial changeset
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.DeferUntilLoaded``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Defer the subscription until the stream has been inflated with data
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.DeferUntilLoaded``2(DynamicData.IObservableCache{``0,``1})">
            <summary>
            Defer the subscription until the stream has been inflated with data
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TrueForAll``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.IObservable{``2}},System.Func{``2,System.Boolean})">
            <summary>
            Produces a boolean observable indicating whether the latest resulting value from all of the specified observables matches
            the equality condition. The observable is re-evaluated whenever
            
            i) The cache changes
            or ii) The inner observable changes
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="observableSelector">Selector which returns the target observable</param>
            <param name="equalityCondition">The equality condition.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TrueForAll``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.IObservable{``2}},System.Func{``0,``2,System.Boolean})">
            <summary>
            Produces a boolean observable indicating whether the latest resulting value from all of the specified observables matches
            the equality condition. The observable is re-evaluated whenever
            
            i) The cache changes
            or ii) The inner observable changes
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="observableSelector">Selector which returns the target observable</param>
            <param name="equalityCondition">The equality condition.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TrueForAny``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.IObservable{``2}},System.Func{``0,``2,System.Boolean})">
            <summary>
            Produces a boolean observable indicating whether the resulting value of whether any of the specified observables matches
            the equality condition. The observable is re-evaluated whenever
            i) The cache changes.
            or ii) The inner observable changes.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="observableSelector">The observable selector.</param>
            <param name="equalityCondition">The equality condition.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            observableSelector
            or
            equalityCondition
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TrueForAny``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.IObservable{``2}},System.Func{``2,System.Boolean})">
            <summary>
            Produces a boolean observable indicating whether the resulting value of whether any of the specified observables matches
            the equality condition. The observable is re-evaluated whenever
            i) The cache changes.
            or ii) The inner observable changes.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="observableSelector">The observable selector.</param>
            <param name="equalityCondition">The equality condition.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            observableSelector
            or
            equalityCondition
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.QueryWhenChanged``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{DynamicData.IQuery{``0,``1},``2})">
            <summary>
             The latest copy of the cache is exposed for querying after each modification to the underlying data
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="resultSelector">The result selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            resultSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.QueryWhenChanged``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            The latest copy of the cache is exposed for querying i)  after each modification to the underlying data ii) upon subscription
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.QueryWhenChanged``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.IObservable{``2}})">
            <summary>
            The latest copy of the cache is exposed for querying i)  after each modification to the underlying data ii) on subscription
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="itemChangedTrigger">Should the query be triggered for observables on individual items</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ToCollection``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Converts the changeset into a fully formed collection. Each change in the source results in a new collection
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ToSortedCollection``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2},DynamicData.Binding.SortDirection)">
            <summary>
            Converts the changeset into a fully formed sorted collection. Each change in the source results in a new sorted collection
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TSortKey">The sort key</typeparam>
            <param name="source">The source.</param>
            <param name="sort">The sort function</param>
            <param name="sortOrder">The sort order. Defaults to ascending</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ToSortedCollection``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Collections.Generic.IComparer{``0})">
            <summary>
            Converts the changeset into a fully formed sorted collection. Each change in the source results in a new sorted collection
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="comparer">The sort comparer</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.WatchValue``2(DynamicData.IObservableCache{``0,``1},``1)">
            <summary>
            Watches updates for a single value matching the specified key
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="key">The key.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.WatchValue``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},``1)">
            <summary>
            Watches updates for a single value matching the specified key
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="key">The key.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Watch``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},``1)">
            <summary>
            Returns an observable of any updates which match the specified key,  preceeded with the initital cache state
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="key">The key.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Clone``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Collections.Generic.ICollection{``0})">
            <summary>
            Clones the changes  into the specified collection
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="target">The target.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ExpireAfter``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.TimeSpan}})">
            <summary>
            Automatically removes items from the stream after the time specified by
            the timeSelector elapses.  Return null if the item should never be removed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="timeSelector">The time selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            timeSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ExpireAfter``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.TimeSpan}},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically removes items from the stream after the time specified by
            the timeSelector elapses.  Return null if the item should never be removed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="timeSelector">The time selector.</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            timeSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ExpireAfter``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.TimeSpan}},System.Nullable{System.TimeSpan})">
            <summary>
            Automatically removes items from the stream on the next poll after the time specified by
            the time selector elapses 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The cache.</param>
            <param name="timeSelector">The time selector.  Return null if the item should never be removed</param>
            <param name="pollingInterval">The polling interval.  if this value is specified,  items are expired on an interval.
            This will result in a loss of accuracy of the time which the item is expired but is less computationally expensive.
            </param>
            <returns>An observable of anumerable of the kev values which has been removed</returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            timeSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ExpireAfter``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.TimeSpan}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically removes items from the stream on the next poll after the time specified by
            the time selector elapses 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The cache.</param>
            <param name="timeSelector">The time selector.  Return null if the item should never be removed</param>
            <param name="pollingInterval">The polling interval.  if this value is specified,  items are expired on an interval.
            This will result in a loss of accuracy of the time which the item is expired but is less computationally expensive.
            </param>
            <param name="scheduler">The scheduler.</param>
            <returns>An observable of anumerable of the kev values which has been removed</returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            timeSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ForExpiry``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Nullable{System.TimeSpan}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically removes items from the cache after the time specified by
            the time selector elapses. 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The cache.</param>
            <param name="timeSelector">The time selector.  Return null if the item should never be removed</param>
            <param name="interval">A polling interval.  Since multiple timer subscriptions can be expensive,
            it may be worth setting the interval.
            </param>
            <param name="scheduler">The scheduler.</param>
            <returns>An observable of anumerable of the kev values which has been removed</returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            timeSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.LimitSizeTo``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Int32)">
            <summary>
            Applies a size limiter to the number of records which can be included in the 
            underlying cache.  When the size limit is reached the oldest items are removed.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="size">The size.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
            <exception cref="T:System.ArgumentException">size cannot be zero</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Page``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}},System.IObservable{DynamicData.IPageRequest})">
            <summary>
            Returns the page as specified by the pageRequests observable
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="pageRequests">The page requests.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Filter``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Boolean})">
            <summary>
            Filters the specified source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="filter">The filter.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Filter``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Func{``0,System.Boolean}})">
            <summary>
            Creates a filtered stream which can be dynamically filtered
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="predicateChanged">Observable to change the underlying predicate.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Filter``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Reactive.Unit})">
            <summary>
            Creates a filtered stream which can be dynamically filtered
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="reapplyFilter">Observable to re-evaluate whether the filter still matches items. Use when filtering on mutable values</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Filter``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Func{``0,System.Boolean}},System.IObservable{System.Reactive.Unit})">
            <summary>
            Creates a filtered stream which can be dynamically filtered
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="reapplyFilter">Observable to re-evaluate whether the filter still matches items. Use when filtering on mutable values</param>
            <param name="predicateChanged">Observable to change the underlying predicate.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.FilterOnProperty``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Func{``0,System.Boolean},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Filters source on the specified property using the specified predicate.
            The filter will automatically reapply when a property changes.
            When there are likely to be a large number of property changes specify a throttle to improve performance
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TProperty">The type of the property.</typeparam>
            <param name="source">The source.</param>
            <param name="propertySelector">The property selector. When the property changes a the filter specified will be re-evaluated</param>
            <param name="predicate">A predicate based on the object which contains the changed property</param>
            <param name="propertyChangedThrottle">The property changed throttle.</param>
            <param name="scheduler">The scheduler used when throttling</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.UpdateIndex``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}})">
            <summary>
            Updates the index for an object which implements IIndexAware
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.InvokeEvaluate``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Invokes Refresh method for an object which implements IEvaluateAware
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Sort``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Collections.Generic.IComparer{``0},DynamicData.SortOptimisations,System.Int32)">
            <summary>
            Sorts using the specified comparer.
            Returns the underlying ChangeSet as as per the system conventions.
            The resulting changeset also exposes a sorted key value collection of of the underlying cached data
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="comparer">The comparer.</param>
            <param name="sortOptimisations">Sort optimisation flags. Specify one or more sort optimisations</param>
            <param name="resetThreshold">The number of updates before the entire list is resorted (rather than inline sort)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            comparer
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Sort``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Collections.Generic.IComparer{``0}},DynamicData.SortOptimisations,System.Int32)">
            <summary>
            Sorts a sequence as, using the comparer observable to determine order
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="comparerObservable">The comparer observable.</param>
            <param name="sortOptimisations">The sort optimisations.</param>
            <param name="resetThreshold">The reset threshold.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Sort``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{System.Collections.Generic.IComparer{``0}},System.IObservable{System.Reactive.Unit},DynamicData.SortOptimisations,System.Int32)">
            <summary>
            Sorts a sequence as, using the comparer observable to determine order
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="comparerObservable">The comparer observable.</param>
            <param name="resorter">Signal to instruct the algroirthm to re-sort the entire data set</param>
            <param name="sortOptimisations">The sort optimisations.</param>
            <param name="resetThreshold">The reset threshold.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Sort``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Collections.Generic.IComparer{``0},System.IObservable{System.Reactive.Unit},DynamicData.SortOptimisations,System.Int32)">
            <summary>
            Sorts a sequence as, using the comparer observable to determine order
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="comparer">The comparer to sort on</param>
            <param name="resorter">Signal to instruct the algroirthm to re-sort the entire data set</param>
            <param name="sortOptimisations">The sort optimisations.</param>
            <param name="resetThreshold">The reset threshold.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TreatMovesAsRemoveAdd``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}})">
            <summary>
            Converts moves changes to remove + add
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns>the same SortedChangeSets, except all moves are replaced with remove + add.</returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.And``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``0,``1}}[])">
            <summary>
            Applied a logical And operator between the collections i.e items which are in all of the sources are included
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="others">The others.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            others
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.And``2(System.Collections.Generic.ICollection{System.IObservable{DynamicData.IChangeSet{``0,``1}}})">
            <summary>
            Applied a logical And operator between the collections i.e items which are in all of the sources are included
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            others
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.And``2(DynamicData.IObservableList{System.IObservable{DynamicData.IChangeSet{``0,``1}}})">
            <summary>
            Dynamically apply a logical And operator between the items in the outer observable list.
            Items which are in all of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.And``2(DynamicData.IObservableList{DynamicData.IObservableCache{``0,``1}})">
            <summary>
            Dynamically apply a logical And operator between the items in the outer observable list.
            Items which are in all of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.And``2(DynamicData.IObservableList{DynamicData.ISourceCache{``0,``1}})">
            <summary>
            Dynamically apply a logical And operator between the items in the outer observable list.
            Items which are in all of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Or``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``0,``1}}[])">
            <summary>
            Apply a logical Or operator between the collections i.e items which are in any of the sources are included
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="others">The others.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            others
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Or``2(System.Collections.Generic.ICollection{System.IObservable{DynamicData.IChangeSet{``0,``1}}})">
            <summary>
            Apply a logical Or operator between the collections i.e items which are in any of the sources are included
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            others
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Or``2(DynamicData.IObservableList{System.IObservable{DynamicData.IChangeSet{``0,``1}}})">
            <summary>
            Dynamically apply a logical Or operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Or``2(DynamicData.IObservableList{DynamicData.IObservableCache{``0,``1}})">
            <summary>
            Dynamically apply a logical Or operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Or``2(DynamicData.IObservableList{DynamicData.ISourceCache{``0,``1}})">
            <summary>
            Dynamically apply a logical Or operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Xor``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``0,``1}}[])">
            <summary>
            Apply a logical Xor operator between the collections. 
            Items which are only in one of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="others">The others.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            others
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Xor``2(System.Collections.Generic.ICollection{System.IObservable{DynamicData.IChangeSet{``0,``1}}})">
            <summary>
            Apply a logical Xor operator between the collections. 
            Items which are only in one of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            others
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Xor``2(DynamicData.IObservableList{System.IObservable{DynamicData.IChangeSet{``0,``1}}})">
            <summary>
            Dynamically apply a logical Xor operator between the items in the outer observable list.
            Items which are only in one of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Xor``2(DynamicData.IObservableList{DynamicData.IObservableCache{``0,``1}})">
            <summary>
            Dynamically apply a logical Xor operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Xor``2(DynamicData.IObservableList{DynamicData.ISourceCache{``0,``1}})">
            <summary>
            Dynamically apply a logical Xor operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Except``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``0,``1}}[])">
            <summary>
            Dynamically apply a logical Except operator between the collections 
            Items from the first collection in the outer list are included unless contained in any of the other lists
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="others">The others.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            others
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Except``2(System.Collections.Generic.ICollection{System.IObservable{DynamicData.IChangeSet{``0,``1}}})">
            <summary>
            Dynamically apply a logical Except operator between the collections 
            Items from the first collection in the outer list are included unless contained in any of the other lists
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The sources.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            others
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Except``2(DynamicData.IObservableList{System.IObservable{DynamicData.IChangeSet{``0,``1}}})">
            <summary>
            Dynamically apply a logical Except operator between the collections 
            Items from the first collection in the outer list are included unless contained in any of the other lists
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Except``2(DynamicData.IObservableList{DynamicData.IObservableCache{``0,``1}})">
            <summary>
            Dynamically apply a logical Except operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Except``2(DynamicData.IObservableList{DynamicData.ISourceCache{``0,``1}})">
            <summary>
            Dynamically apply a logical Except operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.StartWithItem``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},``0)">
            <summary>
            The equivalent of rx startwith operator, but wraps the item in a change where reason is ChangeReason.Add
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.StartWithItem``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},``0,``1)">
            <summary>
            The equivalent of rx startwith operator, but wraps the item in a change where reason is ChangeReason.Add
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
            <param name="key">The key.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},System.Boolean)">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="transformOnRefresh">Should a new transform be applied when a refresh event is received</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},System.Boolean)">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="transformOnRefresh">Should a new transform be applied when a refresh event is received</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,DynamicData.Kernel.Optional{``1},``2,``0},System.Boolean)">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="transformOnRefresh">Should a new transform be applied when a refresh event is received</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},System.IObservable{System.Func{``1,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},System.IObservable{System.Func{``1,``2,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,DynamicData.Kernel.Optional{``1},``2,``0},System.IObservable{System.Func{``1,``2,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},System.IObservable{System.Reactive.Unit})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for all items</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},System.IObservable{System.Reactive.Unit})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for all items</param>#
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,DynamicData.Kernel.Optional{``1},``2,``0},System.IObservable{System.Reactive.Unit})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for all items</param>#
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformAsync``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,System.Threading.Tasks.Task{``0}},System.IObservable{System.Func{``1,``2,System.Boolean}},System.Int32)">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <param name="maximumConcurrency">The maximum concurrent tasks used to perform transforms.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformAsync``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,System.Threading.Tasks.Task{``0}},System.Int32,System.IObservable{System.Func{``1,``2,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <param name="maximumConcurrency">The maximum concurrent tasks used to perform transforms.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformAsync``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,DynamicData.Kernel.Optional{``1},``2,System.Threading.Tasks.Task{``0}},System.Int32,System.IObservable{System.Func{``1,``2,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <param name="maximumConcurrency">The maximum concurrent tasks used to perform transforms.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformMany``4(System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,System.Collections.Generic.IEnumerable{``0}},System.Func{``0,``1})">
            <summary>
            Equivalent to a select many transform. To work, the key must individually identify each child. 
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TDestinationKey">The type of the destination key.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TSourceKey">The type of the source key.</typeparam>
            <param name="source">The source.</param>
            <param name="manyselector">The manyselector.</param>
            <param name="keySelector">The key selector which must be unique across all</param>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformMany``4(System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,System.Collections.ObjectModel.ObservableCollection{``0}},System.Func{``0,``1})">
            <summary>
            Flatten the nested observable collection, and subsequently observe observable collection changes
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TDestinationKey">The type of the destination key.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TSourceKey">The type of the source key.</typeparam>
            <param name="source">The source.</param>
            <param name="manyselector">The manyselector.</param>
            <param name="keySelector">The key selector which must be unique across all</param>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformMany``4(System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,System.Collections.ObjectModel.ReadOnlyObservableCollection{``0}},System.Func{``0,``1})">
            <summary>
            Flatten the nested observable collection, and subsequently observe observable collection changes
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TDestinationKey">The type of the destination key.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TSourceKey">The type of the source key.</typeparam>
            <param name="source">The source.</param>
            <param name="manyselector">The manyselector.</param>
            <param name="keySelector">The key selector which must be unique across all</param>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Func{``1,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Func{``1,``2,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,DynamicData.Kernel.Optional{``1},``2,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Func{``1,``2,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Reactive.Unit})">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for all items</param>
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Reactive.Unit})">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for all items</param>#
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,DynamicData.Kernel.Optional{``1},``2,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Reactive.Unit})">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="forceTransform">Invoke to force a new transform for all items</param>#
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformSafeAsync``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,System.Threading.Tasks.Task{``0}},System.Action{DynamicData.Kernel.Error{``1,``2}},System.IObservable{System.Func{``1,``2,System.Boolean}},System.Int32)">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="errorHandler">The error handler.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <param name="maximumConcurrency">The maximum concurrent tasks used to perform transforms.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformSafeAsync``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,System.Threading.Tasks.Task{``0}},System.Action{DynamicData.Kernel.Error{``1,``2}},System.Int32,System.IObservable{System.Func{``1,``2,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="errorHandler">The error handler.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <param name="maximumConcurrency">The maximum concurrent tasks used to perform transforms.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformSafeAsync``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,DynamicData.Kernel.Optional{``1},``2,System.Threading.Tasks.Task{``0}},System.Action{DynamicData.Kernel.Error{``1,``2}},System.Int32,System.IObservable{System.Func{``1,``2,System.Boolean}})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="errorHandler">The error handler.</param>
            <param name="forceTransform">Invoke to force a new transform for items matching the selected objects</param>
            <param name="maximumConcurrency">The maximum concurrent tasks used to perform transforms.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.TransformToTree``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``1},System.IObservable{System.Func{DynamicData.Node{``0,``1},System.Boolean}})">
            <summary>
            Transforms the object to a fully recursive tree, create a hiearchy based on the pivot function
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="pivotOn">The pivot on.</param>
            <param name="predicateChanged">Observable to change the underlying predicate.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.DistinctValues``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2})">
            <summary>
                Selects distinct values from the source.
            </summary>
            <typeparam name="TObject">The tyoe object from which the distinct values are selected</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The soure.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
            <remarks>
            Due to it's nature only adds or removes can be returned
            </remarks>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Group``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2},System.IObservable{DynamicData.IDistinctChangeSet{``2}})">
            <summary>
             Groups the source on the value returned by group selector factory. 
             A group is included for each item in the resulting group source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TGroupKey">The type of the group key.</typeparam>
            <param name="source">The source.</param>
            <param name="groupSelector">The group selector factory.</param> 
            <param name="resultGroupSource">
              A distinct stream used to determine the result
            </param>
            <remarks>
            Useful for parent-child collection when the parent and child are soured from different streams
            </remarks>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Group``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2})">
            <summary>
             Groups the source on the value returned by group selector factory. 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TGroupKey">The type of the group key.</typeparam>
            <param name="source">The source.</param>
            <param name="groupSelectorKey">The group selector key.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Group``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2},System.IObservable{System.Reactive.Unit})">
            <summary>
             Groups the source on the value returned by group selector factory. 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TGroupKey">The type of the group key.</typeparam>
            <param name="source">The source.</param>
            <param name="groupSelectorKey">The group selector key.</param>
            <param name="regrouper">Invoke to  the for the grouping to be re-evaluated</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            groupSelectorKey
            or
            groupController
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.GroupWithImmutableState``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``2},System.IObservable{System.Reactive.Unit})">
            <summary>
             Groups the source on the value returned by group selector factory. Each update produces immuatable grouping.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TGroupKey">The type of the group key.</typeparam>
            <param name="source">The source.</param>
            <param name="groupSelectorKey">The group selector key.</param>
            <param name="regrouper">Invoke to  the for the grouping to be re-evaluated</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            groupSelectorKey
            or
            groupController
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.GroupOnProperty``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Groups the source using the property specified by the property selector. Groups are re-applied when the property value changed.
            
            When there are likely to be a large number of group property changes specify a throttle to improve performance
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TGroupKey">The type of the group key.</typeparam>
            <param name="source">The source.</param>
            <param name="propertySelector">The property selector used to group the items</param>
            <param name="propertyChangedThrottle"></param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.GroupOnPropertyWithImmutableState``3(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Groups the source using the property specified by the property selector. Each update produces immuatable grouping. Groups are re-applied when the property value changed.
            
            When there are likely to be a large number of group property changes specify a throttle to improve performance
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TGroupKey">The type of the group key.</typeparam>
            <param name="source">The source.</param>
            <param name="propertySelector">The property selector used to group the items</param>
            <param name="propertyChangedThrottle"></param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Top``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}},System.Int32)">
            <summary>
            Limits the size of the result set to the specified number
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="size">The size.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">size;Size should be greater than zero</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Top``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Collections.Generic.IComparer{``0},System.Int32)">
            <summary>
            Limits the size of the result set to the specified number, ordering by the comparer
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="comparer">The comparer.</param>
            <param name="size">The size.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">size;Size should be greater than zero</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Virtualise``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}},System.IObservable{DynamicData.IVirtualRequest})">
            <summary>
            Virtualises the underlying data from the specified source.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="virtualRequests">The virirtualising requests</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Bind``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},DynamicData.Binding.IObservableCollection{``0})">
            <summary>
             Binds the results to the specified observable collection collection using the default update algorithm
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="destination">The destination.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Bind``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},DynamicData.Binding.IObservableCollection{``0},DynamicData.Binding.IObservableCollectionAdaptor{``0,``1})">
            <summary>
            Binds the results to the specified binding collection using the specified update algorithm
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="destination">The destination.</param>
            <param name="updater">The updater.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Bind``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}},DynamicData.Binding.IObservableCollection{``0})">
            <summary>
             Binds the results to the specified observable collection collection using the default update algorithm
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="destination">The destination.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Bind``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}},DynamicData.Binding.IObservableCollection{``0},DynamicData.Binding.ISortedObservableCollectionAdaptor{``0,``1})">
            <summary>
            Binds the results to the specified binding collection using the specified update algorithm
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="destination">The destination.</param>
            <param name="updater">The updater.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Bind``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}},System.Collections.ObjectModel.ReadOnlyObservableCollection{``0}@,System.Int32,DynamicData.Binding.ISortedObservableCollectionAdaptor{``0,``1})">
            <summary>
            Binds the results to the specified readonly observable collection collection using the default update algorithm
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="readOnlyObservableCollection">The resulting read only observable collection.</param>
            <param name="resetThreshold">The number of changes before a reset event is called on the observable collection</param>
            <param name="adaptor">Specify an adaptor to change the algorithm to update the target collection</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Bind``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Collections.ObjectModel.ReadOnlyObservableCollection{``0}@,System.Int32,DynamicData.Binding.IObservableCollectionAdaptor{``0,``1})">
            <summary>
            Binds the results to the specified readonly observable collection collection using the default update algorithm
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="readOnlyObservableCollection">The resulting read only observable collection.</param>
            <param name="resetThreshold">The number of changes before a reset event is called on the observable collection</param>
            <param name="adaptor">Specify an adaptor to change the algorithm to update the target collection</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Bind``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.ComponentModel.BindingList{``0},System.Int32)">
            <summary>
            Binds a clone of the observable changeset to the target observable collection
            </summary>
            <typeparam name="TObject">The object type</typeparam>
            <typeparam name="TKey">The key type</typeparam>
            <param name="source">The source.</param>
            <param name="bindingList">The target binding list</param>
            <param name="resetThreshold">The reset threshold.</param>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            targetCollection
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Bind``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}},System.ComponentModel.BindingList{``0},System.Int32)">
            <summary>
            Binds a clone of the observable changeset to the target observable collection
            </summary>
            <typeparam name="TObject">The object type</typeparam>
            <typeparam name="TKey">The key type</typeparam>
            <param name="source">The source.</param>
            <param name="bindingList">The target binding list</param>
            <param name="resetThreshold">The reset threshold.</param>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            targetCollection
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Adapt``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},DynamicData.IChangeSetAdaptor{``0,``1})">
            <summary>
            Inject side effects into the stream using the specified adaptor
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="adaptor">The adaptor.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            destination
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Adapt``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}},DynamicData.ISortedChangeSetAdaptor{``0,``1})">
            <summary>
            Inject side effects into the stream using the specified sorted adaptor
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="adaptor">The adaptor.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            destination
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.InnerJoin``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``0,``2,``4})">
            <summary>
            Joins the left and right observable data sources, taking values when both left and right values are present
            This is the equivalent of SQL inner join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.InnerJoin``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``1,``0,``2,``4})">
            <summary>
             Groups the right data source and joins the to the left and the right sources, taking values when both left and right values are present
            This is the equivalent of SQL inner join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.InnerJoinMany``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``0,DynamicData.IGrouping{``2,``3,``1},``4})">
            <summary>
            Groups the right data source and joins the resulting group to the left data source, matching these using the specified key selector. Results are included when the left and right have matching values.
            This is the equivalent of SQL inner join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.InnerJoinMany``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``1,``0,DynamicData.IGrouping{``2,``3,``1},``4})">
            <summary>
            Groups the right data source and joins the resulting group to the left data source, matching these using the specified key selector. Results are included when the left and right have matching values.
            This is the equivalent of SQL inner join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.FullJoin``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{DynamicData.Kernel.Optional{``0},DynamicData.Kernel.Optional{``2},``4})">
            <summary>
            Joins the left and right observable data sources, taking any left or right values and matching them, provided that the left or the right has a value.
            This is the equivalent of SQL full join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.FullJoin``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``1,DynamicData.Kernel.Optional{``0},DynamicData.Kernel.Optional{``2},``4})">
            <summary>
            Joins the left and right observable data sources, taking any left or right values and matching them, provided that the left or the right has a value.
            This is the equivalent of SQL full join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.FullJoinMany``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{DynamicData.Kernel.Optional{``0},DynamicData.IGrouping{``2,``3,``1},``4})">
            <summary>
            Groups the right data source and joins the resulting group to the left data source, matching these using the specified key selector. Results are included when the left or the right has a value.
            This is the equivalent of SQL full join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.FullJoinMany``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``1,DynamicData.Kernel.Optional{``0},DynamicData.IGrouping{``2,``3,``1},``4})">
            <summary>
            Groups the right data source and joins the resulting group to the left data source, matching these using the specified key selector. Results are included when the left or the right has a value.
            This is the equivalent of SQL full join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.LeftJoin``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``0,DynamicData.Kernel.Optional{``2},``4})">
            <summary>
            Joins the left and right observable data sources, taking all left values and combining any matching right values.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.LeftJoin``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``1,``0,DynamicData.Kernel.Optional{``2},``4})">
            <summary>
            Joins the left and right observable data sources, taking all left values and combining any matching right values.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.LeftJoinMany``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``0,DynamicData.IGrouping{``2,``3,``1},``4})">
            <summary>
            Groups the right data source and joins the two sources matching them using the specified key selector, taking all left values and combining any matching right values.
            This is the equivalent of SQL left join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.LeftJoinMany``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``1,``0,DynamicData.IGrouping{``2,``3,``1},``4})">
            <summary>
            Groups the right data source and joins the two sources matching them using the specified key selector, taking all left values and combining any matching right values.
            This is the equivalent of SQL left join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.RightJoin``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{DynamicData.Kernel.Optional{``0},``2,``4})">
            <summary>
            Joins the left and right observable data sources, taking all right values and combining any matching left values.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.RightJoin``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``1,DynamicData.Kernel.Optional{``0},``2,``4})">
            <summary>
            Joins the left and right observable data sources, taking all right values and combining any matching left values.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.RightJoinMany``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{DynamicData.Kernel.Optional{``0},DynamicData.IGrouping{``2,``3,``1},``4})">
            <summary>
            Groups the right data source and joins the two sources matching them using the specified key selector, , taking all right values and combining any matching left values.
            This is the equivalent of SQL left join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which</typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (left, right) =&gt; new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.RightJoinMany``5(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.IObservable{DynamicData.IChangeSet{``2,``3}},System.Func{``2,``1},System.Func{``1,DynamicData.Kernel.Optional{``0},DynamicData.IGrouping{``2,``3,``1},``4})">
            <summary>
            Groups the right data source and joins the two sources matching them using the specified key selector,, taking all right values and combining any matching left values.
            This is the equivalent of SQL left join.
            </summary>
            <typeparam name="TLeft">The object type of the left datasource</typeparam>
            <typeparam name="TLeftKey">The key type of the left datasource</typeparam>
            <typeparam name="TRight">The object type of the right datasource</typeparam>
            <typeparam name="TRightKey">The key type of the right datasource</typeparam>
            <typeparam name="TDestination">The resulting object which </typeparam>
            <param name="left">The left data source</param>
            <param name="right">The right data source.</param>
            <param name="rightKeySelector">Specify the foreign key on the right datasource</param>
            <param name="resultSelector">The result selector.used to transform the combined data into. Example (key, left, right) => new CustomObject(key, left, right)</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.PopulateInto``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},DynamicData.ISourceCache{``0,``1})">
            <summary>
            Populates a source into the specified cache.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="detination">The detination.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            detination
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.PopulateInto``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},DynamicData.IIntermediateCache{``0,``1})">
            <summary>
            Populates a source into the specified cache
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="detination">The detination.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            detination</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.PopulateFrom``2(DynamicData.ISourceCache{``0,``1},System.IObservable{System.Collections.Generic.IEnumerable{``0}})">
            <summary>
            Populate a cache from an observable stream.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="observable">The observable.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            keySelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.PopulateFrom``2(DynamicData.ISourceCache{``0,``1},System.IObservable{``0})">
            <summary>
            Populate a cache from an observable stream.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="observable">The observable.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            keySelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.AsObservableCache``2(DynamicData.IObservableCache{``0,``1})">
            <summary>
            Converts the source to an read only observable cache
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.AsObservableCache``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Boolean)">
            <summary>
            Converts the source to a readonly observable cache
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="applyLocking">if set to <c>true</c> all methods are synchronised. There is no need to apply locking when the consumer can be sure the the read / write operations are already synchronised</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ToObservableChangeSet``2(System.IObservable{``0},System.Func{``0,``1},System.Func{``0,System.Nullable{System.TimeSpan}},System.Int32,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Converts the observable to an observable changeset.
            Change set observes observable change events.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="expireAfter">Specify on a per object level the maximum time before an object expires from a cache</param>
            <param name="limitSizeTo">Remove the oldest items when the size has reached this limit</param>
            <param name="scheduler">The scheduler (only used for time expiry).</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ToObservableChangeSet``2(System.IObservable{System.Collections.Generic.IEnumerable{``0}},System.Func{``0,``1},System.Func{``0,System.Nullable{System.TimeSpan}},System.Int32,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Converts the observable to an observable changeset.
            Change set observes observable change events.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="expireAfter">Specify on a per object level the maximum time before an object expires from a cache</param>
            <param name="limitSizeTo">Remove the oldest items when the size has reached this limit</param>
            <param name="scheduler">The scheduler (only used for time expiry).</param>
            <returns>An observable changeset</returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.LimitSizeTo``2(DynamicData.ISourceCache{``0,``1},System.Int32,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Limits the number of records in the cache to the size specified.  When the size is reached
            the oldest items are removed from the cache
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="sizeLimit">The size limit.</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
            <exception cref="T:System.ArgumentException">Size limit must be greater than zero</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ExpireAfter``2(DynamicData.ISourceCache{``0,``1},System.Func{``0,System.Nullable{System.TimeSpan}},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically removes items from the cache after the time specified by
            the time selector elapses. 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The cache.</param>
            <param name="timeSelector">The time selector.  Return null if the item should never be removed</param>
            <param name="scheduler">The scheduler to perform the work on.</param>
            <returns>An observable of anumerable of the kev values which has been removed</returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            timeSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ExpireAfter``2(DynamicData.ISourceCache{``0,``1},System.Func{``0,System.Nullable{System.TimeSpan}},System.Nullable{System.TimeSpan})">
            <summary>
            Automatically removes items from the cache after the time specified by
            the time selector elapses. 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The cache.</param>
            <param name="timeSelector">The time selector.  Return null if the item should never be removed</param>
            <param name="interval">A polling interval.  Since multiple timer subscriptions can be expensive,
            it may be worth setting the interval .
            </param>
            <returns>An observable of anumerable of the kev values which has been removed</returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            timeSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.ExpireAfter``2(DynamicData.ISourceCache{``0,``1},System.Func{``0,System.Nullable{System.TimeSpan}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically removes items from the cache after the time specified by
            the time selector elapses. 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The cache.</param>
            <param name="timeSelector">The time selector.  Return null if the item should never be removed</param>
            <param name="pollingInterval">A polling interval.  Since multiple timer subscriptions can be expensive,
            it may be worth setting the interval.
            </param>
            <param name="scheduler">The scheduler.</param>
            <returns>An observable of anumerable of the kev values which has been removed</returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            timeSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.EditDiff``2(DynamicData.ISourceCache{``0,``1},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Loads the cache with the specified items in an optimised manner i.e. calculates the differences between the old and new items
             in the list and amends only the differences
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="alltems"></param>
            <param name="equalityComparer">The equality comparer used to determine whether a new item is the same as an existing cached item</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.EditDiff``2(DynamicData.ISourceCache{``0,``1},System.Collections.Generic.IEnumerable{``0},System.Func{``0,``0,System.Boolean})">
            <summary>
            Loads the cache with the specified items in an optimised manner i.e. calculates the differences between the old and new items
             in the list and amends only the differences
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="alltems"></param>
            <param name="areItemsEqual">Expression to determine whether an item's value is equal to the old value (current, previous) => current.Version == previous.Version</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.AddOrUpdate``2(DynamicData.ISourceCache{``0,``1},``0)">
            <summary>
            Adds or updates the cache with the specified item.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.AddOrUpdate``2(DynamicData.ISourceCache{``0,``1},``0,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Adds or updates the cache with the specified item.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
            <param name="equalityComparer">The equality comparer used to determine whether a new item is the same as an existing cached item</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.AddOrUpdate``2(DynamicData.ISourceCache{``0,``1},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            <summary>
            Adds or updates the cache with the specified items.
            </summary>
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Remove``2(DynamicData.ISourceCache{``0,``1},``0)">
            <summary>
            Removes the specified item from the cache. 
            
            If the item is not contained in the cache then the operation does nothing.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Remove``2(DynamicData.ISourceCache{``0,``1},``1)">
            <summary>
            Removes the specified key from the cache.
            If the item is not contained in the cache then the operation does nothing.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="key">The key.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.RemoveKey``2(DynamicData.ISourceCache{``0,``1},``1)">
            <summary>
            Removes the specified key from the cache.
            If the item is not contained in the cache then the operation does nothing.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="key">The key.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Remove``2(DynamicData.ISourceCache{``0,``1},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Removes the specified items from the cache. 
            
            Any items not contained in the cache are ignored
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Remove``2(DynamicData.ISourceCache{``0,``1},System.Collections.Generic.IEnumerable{``1})">
            <summary>
            Removes the specified keys from the cache. 
            
            Any keys not contained in the cache are ignored
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keys">The keys.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.RemoveKeys``2(DynamicData.ISourceCache{``0,``1},System.Collections.Generic.IEnumerable{``1})">
            <summary>
            Removes the specified keys from the cache. 
            
            Any keys not contained in the cache are ignored
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keys">The keys.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Clear``2(DynamicData.ISourceCache{``0,``1})">
            <summary>
            Clears all data
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Refresh``2(DynamicData.ISourceCache{``0,``1},``0)">
            <summary>
            Signal observers to re-evaluate the specified item.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Refresh``2(DynamicData.ISourceCache{``0,``1},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Signal observers to re-evaluate the specified items.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Refresh``2(DynamicData.ISourceCache{``0,``1})">
            <summary>
            Signal observers to re-evaluate the all items.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Evaluate``2(DynamicData.ISourceCache{``0,``1},``0)">
            <summary>
            Signal observers to re-evaluate the specified item.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Evaluate``2(DynamicData.ISourceCache{``0,``1},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Signal observers to re-evaluate the specified items.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.AddOrUpdate``2(DynamicData.IIntermediateCache{``0,``1},``0,``1)">
            <summary>
            Removes the specified key from the cache.
            If the item is not contained in the cache then the operation does nothing.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="item"></param>
            <param name="key">The key.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Evaluate``2(DynamicData.ISourceCache{``0,``1})">
            <summary>
            Signal observers to re-evaluate the all items.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Remove``2(DynamicData.IIntermediateCache{``0,``1},``1)">
            <summary>
            Removes the specified key from the cache.
            If the item is not contained in the cache then the operation does nothing.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="key">The key.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Remove``2(DynamicData.IIntermediateCache{``0,``1},System.Collections.Generic.IEnumerable{``1})">
            <summary>
            Removes the specified keys from the cache. 
            
            Any keys not contained in the cache are ignored
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keys">The keys.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Clear``2(DynamicData.IIntermediateCache{``0,``1})">
            <summary>
            Clears all items from the cache
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Clear``2(DynamicData.Cache.Internal.LockFreeObservableCache{``0,``1})">
            <summary>
            Clears all data
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.PopulateInto``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},DynamicData.Cache.Internal.LockFreeObservableCache{``0,``1})">
            <summary>
            Populates a source into the specified cache.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="detination">The detination.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            detination
            </exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Switch``2(System.IObservable{DynamicData.IObservableCache{``0,``1}})">
            <summary>
            Transforms an observable sequence of observable caches into a single sequence
            producing values only from the most recent observable sequence.
            Each time a new inner observable sequence is received, unsubscribe from the
            previous inner observable sequence and clear the existing result set
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns>
            The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received.
            </returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="sources" /> is null.</exception>
        </member>
        <member name="M:DynamicData.ObservableCacheEx.Switch``2(System.IObservable{System.IObservable{DynamicData.IChangeSet{``0,``1}}})">
            <summary>
            Transforms an observable sequence of observable changes sets into an observable sequence
            producing values only from the most recent observable sequence.
            Each time a new inner observable sequence is received, unsubscribe from the
            previous inner observable sequence and clear the existing resukt set
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="sources">The source.</param>
            <returns>
            The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received.
            </returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="sources" /> is null.</exception>
        </member>
        <member name="M:DynamicData.PagedChangeSet`2.Equals(DynamicData.PagedChangeSet{`0,`1})">
            <summary>
            Equalses the specified other.
            </summary>
            <param name="other">The other.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.PagedChangeSet`2.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the SortedItems <see cref="T:System.Object"/>.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents the SortedItems <see cref="T:System.Object"/>.
            </returns>
        </member>
        <member name="T:DynamicData.PageRequest">
            <summary>
            Represents a new page request
            </summary>
        </member>
        <member name="F:DynamicData.PageRequest.Default">
            <summary>
            The default page request
            </summary>
        </member>
        <member name="F:DynamicData.PageRequest.Empty">
            <summary>
            Represents an empty page
            </summary>
        </member>
        <member name="M:DynamicData.PageRequest.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.PageRequest"/> class.
            </summary>
            <param name="page">The page.</param>
            <param name="size">The size.</param>
        </member>
        <member name="M:DynamicData.PageRequest.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
        </member>
        <member name="P:DynamicData.PageRequest.Page">
            <summary>
            The page to move to
            </summary>
        </member>
        <member name="P:DynamicData.PageRequest.Size">
            <summary>
            The page size
            </summary>
        </member>
        <member name="M:DynamicData.PageRequest.Equals(DynamicData.IPageRequest)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.PageRequest.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.PageRequest.GetHashCode">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.PageRequest.DefaultComparer">
            <summary>
            Gets the default comparer.
            </summary>
            <value>
            The default comparer.
            </value>
        </member>
        <member name="M:DynamicData.PageRequest.ToString">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.PageResponse.Equals(DynamicData.Operators.IPageResponse)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <returns>
            true if the current object is equal to the <paramref name="other"/> parameter; otherwise, false.
            </returns>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:DynamicData.PageResponse.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>; otherwise, false.
            </returns>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:System.Object"/>. </param>
        </member>
        <member name="M:DynamicData.PageResponse.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"/>.
            </returns>
        </member>
        <member name="M:DynamicData.PageResponse.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </returns>
        </member>
        <member name="T:DynamicData.SortOptimisations">
            <summary>
            Flags used to specify one or more sort optimisations
            </summary>
        </member>
        <member name="F:DynamicData.SortOptimisations.None">
            <summary>
            No sorting optimisation are applied
            </summary>
        </member>
        <member name="F:DynamicData.SortOptimisations.ComparesImmutableValuesOnly">
            <summary>
            Specify this option if the comparer used for sorting compares immutable fields only.
            In which case index changes can be calculated using BinarySearch rather than the expensive IndexOf
            </summary>
        </member>
        <member name="F:DynamicData.SortOptimisations.IgnoreEvaluates">
            <summary>
            Ignores moves because of evaluates.  
            Use for virtualisatiom or pagination
            </summary>
        </member>
        <member name="F:DynamicData.SortOptimisations.InsertAtEndThenSort">
            <summary>
            The insert at end then sort entire set.  This can be the best algorithm for large datasets with many changes
            </summary>
        </member>
        <member name="T:DynamicData.SortReason">
            <summary>
            The reason why the sorted collection has changed
            </summary>
        </member>
        <member name="F:DynamicData.SortReason.InitialLoad">
            <summary>
            The collection has loaded for the first time.
            </summary>
        </member>
        <member name="F:DynamicData.SortReason.ComparerChanged">
            <summary>
            The comparer used to sort has changed 
            </summary>
        </member>
        <member name="F:DynamicData.SortReason.DataChanged">
            <summary>
            The data changed
            </summary>
        </member>
        <member name="F:DynamicData.SortReason.Reorder">
            <summary>
            Sorting has been reapplied
            </summary>
        </member>
        <member name="F:DynamicData.SortReason.Reset">
            <summary>
            A large number of changes has been received and the reset threshold has been exceeded.
            The entire set has been resorted without moves being calculated
            </summary>
        </member>
        <member name="T:DynamicData.SourceCache`2">
            <summary>
            An observable cache which exposes an update API.  Used at the root
            of all observable chains
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.SourceCache`2.#ctor(System.Func{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.SourceCache`2"/> class.
            </summary>
            <param name="keySelector">The key selector.</param>
            <exception cref="T:System.ArgumentNullException">keySelector</exception>
        </member>
        <member name="M:DynamicData.SourceCache`2.Edit(System.Action{DynamicData.ISourceUpdater{`0,`1}})">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.SourceCache`2.CountChanged">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.SourceCache`2.Connect(System.Func{`0,System.Boolean})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.SourceCache`2.Preview(System.Func{`0,System.Boolean})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.SourceCache`2.Watch(`1)">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.SourceCache`2.Count">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.SourceCache`2.Items">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.SourceCache`2.KeyValues">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.SourceCache`2.Keys">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.SourceCache`2.Lookup(`1)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.SourceCache`2.Dispose">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.SourceCacheEx">
            <summary>
            Source cache convenience extensions
            </summary>
        </member>
        <member name="M:DynamicData.SourceCacheEx.Cast``3(DynamicData.IObservableCache{``0,``1},System.Func{``0,``2})">
            <summary>
            Connects to the cache, and casts the object to the specified type
            Alas, I had to add the converter due to type inference issues 
            </summary>
            <typeparam name="TSource">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="converter">The conversion factory.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Tests.ChangeSetAggregator`2">
            <summary>
            Aggregates all events and statistics for a changeset to help assertions when testing
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Tests.ChangeSetAggregator`2.#ctor(System.IObservable{DynamicData.IChangeSet{`0,`1}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Tests.ChangeSetAggregator`2"/> class.
            </summary>
            <param name="source">The source.</param>
        </member>
        <member name="P:DynamicData.Tests.ChangeSetAggregator`2.Data">
            <summary>
            Gets the data.
            </summary>
            <value>
            The data.
            </value>
        </member>
        <member name="P:DynamicData.Tests.ChangeSetAggregator`2.Messages">
            <summary>
            Gets the messages.
            </summary>
            <value>
            The messages.
            </value>
        </member>
        <member name="P:DynamicData.Tests.ChangeSetAggregator`2.Summary">
            <summary>
            Gets the summary.
            </summary>
            <value>
            The summary.
            </value>
        </member>
        <member name="P:DynamicData.Tests.ChangeSetAggregator`2.Error">
            <summary>
            Gets the error.
            </summary>
            <value>
            The error.
            </value>
        </member>
        <member name="M:DynamicData.Tests.ChangeSetAggregator`2.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="T:DynamicData.Tests.DistinctChangeSetAggregator`1">
            <summary>
            Aggregates all events and statistics for a distinct changeset to help assertions when testing
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
        </member>
        <member name="M:DynamicData.Tests.DistinctChangeSetAggregator`1.#ctor(System.IObservable{DynamicData.IDistinctChangeSet{`0}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Tests.DistinctChangeSetAggregator`1"/> class.
            </summary>
            <param name="source">The source.</param>
        </member>
        <member name="P:DynamicData.Tests.DistinctChangeSetAggregator`1.Data">
            <summary>
            Gets the data.
            </summary>
        </member>
        <member name="P:DynamicData.Tests.DistinctChangeSetAggregator`1.Messages">
            <summary>
            Gets the messages.
            </summary>
        </member>
        <member name="P:DynamicData.Tests.DistinctChangeSetAggregator`1.Summary">
            <summary>
            Gets the summary.
            </summary>
        </member>
        <member name="P:DynamicData.Tests.DistinctChangeSetAggregator`1.Error">
            <summary>
            Gets the error.
            </summary>
            <value>
            The error.
            </value>
        </member>
        <member name="M:DynamicData.Tests.DistinctChangeSetAggregator`1.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="T:DynamicData.Tests.PagedChangeSetAggregator`2">
            <summary>
            Aggregates all events and statistics for a paged changeset to help assertions when testing
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Tests.PagedChangeSetAggregator`2.#ctor(System.IObservable{DynamicData.IPagedChangeSet{`0,`1}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Tests.PagedChangeSetAggregator`2"/> class.
            </summary>
            <param name="source">The source.</param>
        </member>
        <member name="P:DynamicData.Tests.PagedChangeSetAggregator`2.Data">
            <summary>
            The data of the steam cached inorder to apply assertions
            </summary>
        </member>
        <member name="P:DynamicData.Tests.PagedChangeSetAggregator`2.Messages">
            <summary>
            Record of all received messages.
            </summary>
            <value>
            The messages.
            </value>
        </member>
        <member name="P:DynamicData.Tests.PagedChangeSetAggregator`2.Summary">
            <summary>
            The aggregated change summary.
            </summary>
            <value>
            The summary.
            </value>
        </member>
        <member name="P:DynamicData.Tests.PagedChangeSetAggregator`2.Error">
            <summary>
            Gets and error.
            </summary>
            <value>
            The error.
            </value>
        </member>
        <member name="M:DynamicData.Tests.PagedChangeSetAggregator`2.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="T:DynamicData.Tests.SortedChangeSetAggregator`2">
            <summary>
            Aggregates all events and statistics for a sorted changeset to help assertions when testing
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Tests.SortedChangeSetAggregator`2.#ctor(System.IObservable{DynamicData.ISortedChangeSet{`0,`1}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Tests.SortedChangeSetAggregator`2"/> class.
            </summary>
            <param name="source">The source.</param>
        </member>
        <member name="P:DynamicData.Tests.SortedChangeSetAggregator`2.Data">
            <summary>
            The data of the steam cached inorder to apply assertions
            </summary>
        </member>
        <member name="P:DynamicData.Tests.SortedChangeSetAggregator`2.Messages">
            <summary>
            Record of all received messages.
            </summary>
            <value>
            The messages.
            </value>
        </member>
        <member name="P:DynamicData.Tests.SortedChangeSetAggregator`2.Summary">
            <summary>
            The aggregated change summary.
            </summary>
            <value>
            The summary.
            </value>
        </member>
        <member name="P:DynamicData.Tests.SortedChangeSetAggregator`2.Error">
            <summary>
            Gets and error.
            </summary>
        </member>
        <member name="M:DynamicData.Tests.SortedChangeSetAggregator`2.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="T:DynamicData.Tests.TestEx">
            <summary>
            Test extensions
            </summary>
        </member>
        <member name="M:DynamicData.Tests.TestEx.AsAggregator``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Aggregates all events and statistics for a paged changeset to help assertions when testing
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Tests.TestEx.AsAggregator``1(System.IObservable{DynamicData.IDistinctChangeSet{``0}})">
            <summary>
            Aggregates all events and statistics for a distinct changeset to help assertions when testing
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Tests.TestEx.AsAggregator``2(System.IObservable{DynamicData.ISortedChangeSet{``0,``1}})">
            <summary>
            Aggregates all events and statistics for a sorted changeset to help assertions when testing
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Tests.TestEx.AsAggregator``2(System.IObservable{DynamicData.IVirtualChangeSet{``0,``1}})">
             <summary>
            Aggregates all events and statistics for a virtual changeset to help assertions when testing
             </summary>
             <typeparam name="TObject">The type of the object.</typeparam>
             <typeparam name="TKey">The type of the key.</typeparam>
             <param name="source">The source.</param>
             <returns></returns>
             <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Tests.TestEx.AsAggregator``2(System.IObservable{DynamicData.IPagedChangeSet{``0,``1}})">
            <summary>
            Aggregates all events and statistics for a paged changeset to help assertions when testing
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Tests.VirtualChangeSetAggregator`2">
            <summary>
            Aggregates all events and statistics for a virtual changeset to help assertions when testing
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Tests.VirtualChangeSetAggregator`2.#ctor(System.IObservable{DynamicData.IVirtualChangeSet{`0,`1}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Tests.VirtualChangeSetAggregator`2"/> class.
            </summary>
            <param name="source">The source.</param>
        </member>
        <member name="P:DynamicData.Tests.VirtualChangeSetAggregator`2.Data">
            <summary>
            Gets the data.
            </summary>
            <value>
            The data.
            </value>
        </member>
        <member name="P:DynamicData.Tests.VirtualChangeSetAggregator`2.Messages">
            <summary>
            Gets the messages.
            </summary>
            <value>
            The messages.
            </value>
        </member>
        <member name="P:DynamicData.Tests.VirtualChangeSetAggregator`2.Summary">
            <summary>
            Gets the summary.
            </summary>
            <value>
            The summary.
            </value>
        </member>
        <member name="P:DynamicData.Tests.VirtualChangeSetAggregator`2.Error">
            <summary>
            Gets the error.
            </summary>
            <value>
            The error.
            </value>
        </member>
        <member name="M:DynamicData.Tests.VirtualChangeSetAggregator`2.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="T:DynamicData.Tests.ChangeSetAggregator`1">
            <summary>
            Aggregates all events and statistics for a changeset to help assertions when testing
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
        </member>
        <member name="M:DynamicData.Tests.ChangeSetAggregator`1.#ctor(System.IObservable{DynamicData.IChangeSet{`0}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Tests.ChangeSetAggregator`2"/> class.
            </summary>
            <param name="source">The source.</param>
        </member>
        <member name="P:DynamicData.Tests.ChangeSetAggregator`1.Data">
            <summary>
            A clone of the data
            </summary>
        </member>
        <member name="P:DynamicData.Tests.ChangeSetAggregator`1.Messages">
            <summary>
            All message received
            </summary>
        </member>
        <member name="M:DynamicData.Tests.ChangeSetAggregator`1.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="T:DynamicData.Tests.ListTextEx">
            <summary>
            Test extensions
            </summary>
        </member>
        <member name="M:DynamicData.Tests.ListTextEx.AsAggregator``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Aggregates all events and statistics for a changeset to help assertions when testing
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <returns></returns>
        </member>
        <member name="T:DynamicData.VirtualRequest">
            <summary>
            A request object for virtualisation
            </summary>
        </member>
        <member name="F:DynamicData.VirtualRequest.Default">
            <summary>
            The default request value
            </summary>
        </member>
        <member name="M:DynamicData.VirtualRequest.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.VirtualRequest"/> class.
            </summary>
            <param name="startIndex">The start index.</param>
            <param name="size">The size.</param>
        </member>
        <member name="M:DynamicData.VirtualRequest.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.VirtualRequest"/> class.
            </summary>
        </member>
        <member name="P:DynamicData.VirtualRequest.Size">
            <summary>
            The maximumn number of items to return
            </summary>
        </member>
        <member name="P:DynamicData.VirtualRequest.StartIndex">
            <summary>
            The first index in the virualised list
            </summary>
        </member>
        <member name="P:DynamicData.VirtualRequest.StartIndexSizeComparer">
            <summary>
            Gets the start index size comparer.
            </summary>
            <value>
            The start index size comparer.
            </value>
        </member>
        <member name="M:DynamicData.VirtualRequest.Equals(DynamicData.IVirtualRequest)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.VirtualRequest.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.VirtualRequest.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.VirtualRequest.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.VirtualResponse">
            <summary>
            Defines values used to virtualise the result set
            </summary>
        </member>
        <member name="P:DynamicData.VirtualResponse.Size">
            <summary>
            The requested size of the virtualised data
            </summary>
        </member>
        <member name="P:DynamicData.VirtualResponse.StartIndex">
            <summary>
            The starting index
            </summary>
        </member>
        <member name="P:DynamicData.VirtualResponse.TotalSize">
            <summary>
            Gets the total size of the underlying cache
            </summary>
        </member>
        <member name="M:DynamicData.VirtualResponse.Equals(DynamicData.IVirtualResponse)">
            <summary>
                Indicates whether the current object is equal to another object of the same type.
            </summary>
            <returns>
                true if the current object is equal to the <paramref name="other" /> parameter; otherwise, false.
            </returns>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:DynamicData.VirtualResponse.Equals(System.Object)">
            <summary>
                Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />.
            </summary>
            <returns>
                true if the specified object  is equal to the current object; otherwise, false.
            </returns>
            <param name="obj">The object to compare with the current object. </param>
        </member>
        <member name="M:DynamicData.VirtualResponse.GetHashCode">
            <summary>
                Serves as a hash function for a particular type.
            </summary>
            <returns>
                A hash code for the current <see cref="T:System.Object" />.
            </returns>
        </member>
        <member name="M:DynamicData.VirtualResponse.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </returns>
        </member>
        <member name="T:DynamicData.Diagnostics.ChangeStatistics">
            <summary>
                Object used to capture accumulated changes
            </summary>
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeStatistics.#ctor">
            <summary>
                Initializes a new instance of the <see cref="T:System.Object" /> class.
            </summary>
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeStatistics.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
                Initializes a new instance of the <see cref="T:System.Object" /> class.
            </summary>
        </member>
        <member name="P:DynamicData.Diagnostics.ChangeStatistics.Adds">
            <summary>
                Gets the adds.
            </summary>
            <value>
                The adds.
            </value>
        </member>
        <member name="P:DynamicData.Diagnostics.ChangeStatistics.Updates">
            <summary>
                Gets the updates.
            </summary>
            <value>
                The updates.
            </value>
        </member>
        <member name="P:DynamicData.Diagnostics.ChangeStatistics.Removes">
            <summary>
                Gets the removes.
            </summary>
            <value>
                The removes.
            </value>
        </member>
        <member name="P:DynamicData.Diagnostics.ChangeStatistics.Refreshes">
            <summary>
                Gets the refreshes.
            </summary>
            <value>
                The refreshes.
            </value>
        </member>
        <member name="P:DynamicData.Diagnostics.ChangeStatistics.Count">
            <summary>
                Gets the count.
            </summary>
            <value>
                The count.
            </value>
        </member>
        <member name="P:DynamicData.Diagnostics.ChangeStatistics.Index">
            <summary>
                Gets the index.
            </summary>
            <value>
                The index.
            </value>
        </member>
        <member name="P:DynamicData.Diagnostics.ChangeStatistics.Moves">
            <summary>
                Gets the moves.
            </summary>
            <value>
                The moves.
            </value>
        </member>
        <member name="P:DynamicData.Diagnostics.ChangeStatistics.LastUpdated">
            <summary>
                Gets the last updated.
            </summary>
            <value>
                The last updated.
            </value>
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeStatistics.Equals(DynamicData.Diagnostics.ChangeStatistics)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeStatistics.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeStatistics.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeStatistics.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Diagnostics.ChangeSummary">
            <summary>
            Accumulates change statics
            </summary>
        </member>
        <member name="F:DynamicData.Diagnostics.ChangeSummary.Empty">
            <summary>
            An empty instance of change summary
            </summary>
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeSummary.#ctor(System.Int32,DynamicData.Diagnostics.ChangeStatistics,DynamicData.Diagnostics.ChangeStatistics)">
            <summary>
                Initializes a new instance of the <see cref="T:System.Object" /> class.
            </summary>
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeSummary.#ctor">
            <summary>
                Initializes a new instance of the <see cref="T:System.Object" /> class.
            </summary>
        </member>
        <member name="P:DynamicData.Diagnostics.ChangeSummary.Latest">
            <summary>
            Gets the latest change
            </summary>
            <value>
            The latest.
            </value>
        </member>
        <member name="P:DynamicData.Diagnostics.ChangeSummary.Overall">
            <summary>
            Gets the overall change count
            </summary>
            <value>
            The overall.
            </value>
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeSummary.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeSummary.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Diagnostics.ChangeSummary.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Diagnostics.DiagnosticOperators">
            <summary>
            Extensions for diagnostics
            </summary>
        </member>
        <member name="M:DynamicData.Diagnostics.DiagnosticOperators.CollectUpdateStats``2(System.IObservable{DynamicData.IChangeSet{``0,``1}})">
            <summary>
            Accumulates update statistics
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.Diagnostics.DiagnosticOperators.CollectUpdateStats``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Accumulates update statistics
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="T:DynamicData.EnumerableEx">
            <summary>
            Extensions for dynamic data
            </summary>
        </member>
        <member name="M:DynamicData.EnumerableEx.AsObservableChangeSet``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Boolean)">
            <summary>
            Converts the enumerable to an observable changeset.
            Generates a snapshot in time based of enumerable.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="completable">Optionally emmit an OnComplete</param>
            <returns>An observable changeset</returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.EnumerableEx.AsObservableChangeSet``1(System.Collections.Generic.IEnumerable{``0},System.Boolean)">
            <summary>
            Converts the enumerable to an observable changeset.
            Generates a snapshot in time based of enumerable.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="completable">Optionally emmit an OnComplete</param>
            <returns>An observable change set</returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="T:DynamicData.Experimental.ExperimentalEx">
            <summary>
            Experimental operator extensions
            </summary>
        </member>
        <member name="M:DynamicData.Experimental.ExperimentalEx.AsWatcher``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Wraps the source cache, optimising it for watching individual updates
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="P:DynamicData.Experimental.ISubjectWithRefCount`1.RefCount">
            <summary>number of subscribers 
            </summary>
            <value>
            The ref count.
            </value>
        </member>
        <member name="T:DynamicData.Experimental.IWatcher`2">
            <summary>
            A specialisation of the SourceList which is optimised for watching individual items
            </summary>
        </member>
        <member name="M:DynamicData.Experimental.IWatcher`2.Watch(`1)">
            <summary>
            Watches updates which match the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Experimental.SubjectWithRefCount`1">
            <summary>
            A subject with a count of the number of subscribers
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.Experimental.SubjectWithRefCount`1.#ctor(System.Reactive.Subjects.ISubject{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.Experimental.SubjectWithRefCount`1.OnNext(`0)">
            <summary>
            Provides the observer with new data.
            </summary>
            <param name="value">The current notification information.</param>
        </member>
        <member name="M:DynamicData.Experimental.SubjectWithRefCount`1.OnError(System.Exception)">
            <summary>
            Notifies the observer that the provider has experienced an error condition.
            </summary>
            <param name="error">An object that provides additional information about the error.</param>
        </member>
        <member name="M:DynamicData.Experimental.SubjectWithRefCount`1.OnCompleted">
            <summary>
            Notifies the observer that the provider has finished sending push-based notifications.
            </summary>
        </member>
        <member name="M:DynamicData.Experimental.SubjectWithRefCount`1.Subscribe(System.IObserver{`0})">
            <summary>
            Notifies the provider that an observer is to receive notifications.
            </summary>
            <returns>
            The observer's interface that enables resources to be disposed.
            </returns>
            <param name="observer">The object that is to receive notifications.</param>
        </member>
        <member name="P:DynamicData.Experimental.SubjectWithRefCount`1.RefCount">
            <summary>number of subscribers 
            </summary>
            <value>
            The ref count.
            </value>
        </member>
        <member name="T:DynamicData.IChangeSet">
            <summary>
            Base interface representing a set of changes
            </summary>
        </member>
        <member name="P:DynamicData.IChangeSet.Adds">
            <summary>
                Gets the number of additions
            </summary>
        </member>
        <member name="P:DynamicData.IChangeSet.Removes">
            <summary>
                Gets the number of removes
            </summary>
        </member>
        <member name="P:DynamicData.IChangeSet.Refreshes">
            <summary>
            The number of refreshes
            </summary>
        </member>
        <member name="P:DynamicData.IChangeSet.Moves">
            <summary>
                Gets the number of moves
            </summary>
        </member>
        <member name="P:DynamicData.IChangeSet.Count">
            <summary>
                The total update count
            </summary>
        </member>
        <member name="P:DynamicData.IChangeSet.Capacity">
            <summary>
            Gets or sets the capacity of the change set
            </summary>
            <value>
            The capacity.
            </value>
        </member>
        <member name="T:DynamicData.Kernel.ConnectionStatus">
            <summary>
            Connectable cache status
            </summary>
        </member>
        <member name="F:DynamicData.Kernel.ConnectionStatus.Pending">
            <summary>
            Status set to pending until first batch of data is received.
            </summary>
        </member>
        <member name="F:DynamicData.Kernel.ConnectionStatus.Loaded">
            <summary>
            Status set to loaded when first batch of data has been received.  Remains loaded 
            until the cache is disposed or faults.
            </summary>
        </member>
        <member name="F:DynamicData.Kernel.ConnectionStatus.Errored">
            <summary>
            There has been a error and the stream has stopped. No more status updates will be received.
            </summary>
        </member>
        <member name="F:DynamicData.Kernel.ConnectionStatus.Completed">
            <summary>
            The stream has completed. No more status updates will be received.
            </summary>
        </member>
        <member name="T:DynamicData.Kernel.DoubleCheck`1">
            <summary>
            Very simple, primitive yet light weight lazy loader
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.Kernel.DoubleCheck`1.#ctor(System.Func{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Kernel.DoubleCheck`1"/> class.
            </summary>
            <param name="factory">The factory.</param>
            <exception cref="T:System.ArgumentNullException">factory</exception>
        </member>
        <member name="P:DynamicData.Kernel.DoubleCheck`1.Value">
            <summary>
            Gets the value. Factory is execute when first called
            </summary>
        </member>
        <member name="T:DynamicData.Kernel.EnumerableEx">
            <summary>
            Enumerable extensions
            </summary>
        </member>
        <member name="M:DynamicData.Kernel.EnumerableEx.AsArray``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Casts the enumerable to an array if it is already an array.  Otherwise call ToArray
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.EnumerableEx.AsList``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Casts the enumerable to an array if it is already an array.  Otherwise call ToList
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.EnumerableEx.Duplicates``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})">
            <summary>
            Returns any duplicated values from the source
            </summary>
            <typeparam name="T"></typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.Kernel.EnumerableEx.IndexOfMany``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Finds the index of many items as specified in the secondary enumerable.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="itemsToFind">The items to find in the source enumerable</param>
            <returns>
            A result as specified by the result selector
            </returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.Kernel.EnumerableEx.IndexOfMany``2(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,``1})">
            <summary>
            Finds the index of many items as specified in the secondary enumerable.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="source">The source.</param>
            <param name="itemsToFind">The items to find.</param>
            <param name="resultSelector">The result selector</param>
            <returns>A result as specified by the result selector</returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.Kernel.EnumerableEx.WithIndex``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Returns an object with it's current index.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="P:DynamicData.Kernel.EnumerableIList`1.Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.Kernel.EnumerableIList`1.Count">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.Kernel.EnumerableIList`1.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.EnumerableIList`1.Add(`0)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.EnumerableIList`1.Clear">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.EnumerableIList`1.Contains(`0)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.EnumerableIList`1.CopyTo(`0[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.EnumerableIList`1.IndexOf(`0)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.EnumerableIList`1.Insert(System.Int32,`0)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.EnumerableIList`1.Remove(`0)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.EnumerableIList`1.RemoveAt(System.Int32)">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Kernel.Error`2">
            <summary>
            An error container used to report errors from within dynamic data operators
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
        </member>
        <member name="M:DynamicData.Kernel.Error`2.#ctor(System.Exception,`0,`1)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
        </member>
        <member name="P:DynamicData.Kernel.Error`2.Key">
            <summary>
            Gets the key.
            </summary>
        </member>
        <member name="P:DynamicData.Kernel.Error`2.Value">
            <summary>
            Gets the object.
            </summary>
        </member>
        <member name="P:DynamicData.Kernel.Error`2.Exception">
            <summary>
            The exception.
            </summary>
        </member>
        <member name="M:DynamicData.Kernel.Error`2.Equals(DynamicData.Kernel.Error{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.Error`2.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.Error`2.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.Error`2.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Kernel.InternalEx">
            <summary>
            Extensions associated with times and intervals.
            </summary>
        </member>
        <member name="M:DynamicData.Kernel.InternalEx.RetryWithBackOff``2(System.IObservable{``0},System.Func{``1,System.Int32,System.Nullable{System.TimeSpan}})">
            <summary>
            Retries the with back off.
            </summary>
            <remarks>
            With big thanks.  I took this from 
            http://social.msdn.microsoft.com/Forums/en-US/af43b14e-fb00-42d4-8fb1-5c45862f7796/recursive-async-web-requestresponse-what-is-best-practice-3rd-try
            </remarks>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="source">The source.</param>
            <param name="backOffStrategy">The back off strategy.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.InternalEx.ScheduleRecurringAction(System.Reactive.Concurrency.IScheduler,System.TimeSpan,System.Action)">
            <summary>
            Schedules a recurring action.
            </summary>
            <remarks>
             I took this from 
            http://www.zerobugbuild.com/?p=259
            </remarks>
            <param name="scheduler">The scheduler.</param>
            <param name="interval">The interval.</param>
            <param name="action">The action.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.InternalEx.ScheduleRecurringAction(System.Reactive.Concurrency.IScheduler,System.Func{System.TimeSpan},System.Action)">
            <summary>
            Schedules a recurring action.
            </summary>
            <remarks>
             I took this from 
            
            http://www.zerobugbuild.com/?p=259
            
            and adapted it to receive 
            </remarks>
            <param name="scheduler">The scheduler.</param>
            <param name="interval">The interval.</param>
            <param name="action">The action.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Kernel.ItemWithIndex`1">
            <summary>
            Container for an item and it's index from a list
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="P:DynamicData.Kernel.ItemWithIndex`1.Item">
            <summary>
            Gets the item.
            </summary>
        </member>
        <member name="P:DynamicData.Kernel.ItemWithIndex`1.Index">
            <summary>
            Gets the index.
            </summary>
        </member>
        <member name="M:DynamicData.Kernel.ItemWithIndex`1.#ctor(`0,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Kernel.ItemWithIndex`1"/> class.
            </summary>
            <param name="item">The item.</param>
            <param name="index">The index.</param>
        </member>
        <member name="M:DynamicData.Kernel.ItemWithIndex`1.Equals(DynamicData.Kernel.ItemWithIndex{`0})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.ItemWithIndex`1.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.ItemWithIndex`1.GetHashCode">
            <summary>Returns the hash code for this instance.</summary>
            <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
        </member>
        <member name="M:DynamicData.Kernel.ItemWithIndex`1.op_Equality(DynamicData.Kernel.ItemWithIndex{`0},DynamicData.Kernel.ItemWithIndex{`0})">
            <summary>Returns a value that indicates whether the values of two <see cref="T:DynamicData.Kernel.ItemWithIndex`1" /> objects are equal.</summary>
            <param name="left">The first value to compare.</param>
            <param name="right">The second value to compare.</param>
            <returns>true if the <paramref name="left" /> and <paramref name="right" /> parameters have the same value; otherwise, false.</returns>
        </member>
        <member name="M:DynamicData.Kernel.ItemWithIndex`1.op_Inequality(DynamicData.Kernel.ItemWithIndex{`0},DynamicData.Kernel.ItemWithIndex{`0})">
            <summary>Returns a value that indicates whether two <see cref="T:DynamicData.Kernel.ItemWithIndex`1" /> objects have different values.</summary>
            <param name="left">The first value to compare.</param>
            <param name="right">The second value to compare.</param>
            <returns>true if <paramref name="left" /> and <paramref name="right" /> are not equal; otherwise, false.</returns>
        </member>
        <member name="M:DynamicData.Kernel.ItemWithIndex`1.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Kernel.ItemWithValue`2">
            <summary>
            Container for an item and it's Value from a list
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
        </member>
        <member name="P:DynamicData.Kernel.ItemWithValue`2.Item">
            <summary>
            Gets the item.
            </summary>
        </member>
        <member name="P:DynamicData.Kernel.ItemWithValue`2.Value">
            <summary>
            Gets the Value.
            </summary>
        </member>
        <member name="M:DynamicData.Kernel.ItemWithValue`2.#ctor(`0,`1)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Kernel.ItemWithIndex`1"/> class.
            </summary>
            <param name="item">The item.</param>
            <param name="value">The Value.</param>
        </member>
        <member name="M:DynamicData.Kernel.ItemWithValue`2.Equals(DynamicData.Kernel.ItemWithValue{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.ItemWithValue`2.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.ItemWithValue`2.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.ItemWithValue`2.op_Equality(DynamicData.Kernel.ItemWithValue{`0,`1},DynamicData.Kernel.ItemWithValue{`0,`1})">
            <summary>
            Implements the operator ==.
            </summary>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:DynamicData.Kernel.ItemWithValue`2.op_Inequality(DynamicData.Kernel.ItemWithValue{`0,`1},DynamicData.Kernel.ItemWithValue{`0,`1})">
            <summary>
            Implements the operator !=.
            </summary>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:DynamicData.Kernel.ItemWithValue`2.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Kernel.Optional">
            <summary>
            Optional factory class
            </summary>
        </member>
        <member name="M:DynamicData.Kernel.Optional.Some``1(``0)">
             <summary>
            Wraps the specified value in an Optional container
             </summary>
             <typeparam name="T"></typeparam>
             <param name="value">The value.</param>
             <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.Optional.None``1">
            <summary>
            Returns an None optional value for the specified type.
            </summary>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Kernel.Optional`1">
            <summary>
            The equivalent of a nullable type which works on value and reference types
            </summary>
            <typeparam name="T">The underlying value type of the <see cref="T:System.Nullable`1"/> generic type.</typeparam><filterpriority>1</filterpriority>
        </member>
        <member name="F:DynamicData.Kernel.Optional`1.None">
            <summary>
            The default valueless optional
            </summary>
        </member>
        <member name="M:DynamicData.Kernel.Optional`1.#ctor(`0)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Kernel.Optional`1"/> struct.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:DynamicData.Kernel.Optional`1.Create(`0)">
            <summary>
            Creates the specified value.
            </summary>
            <param name="value">The value.</param>
            <returns></returns>
        </member>
        <member name="P:DynamicData.Kernel.Optional`1.HasValue">
            <summary>
            Gets a value indicating whether the current <see cref="T:System.Nullable`1"/> object has a value.
            </summary>
            
            <returns>
            true if the current <see cref="T:System.Nullable`1"/> object has a value; false if the current <see cref="T:System.Nullable`1"/> object has no value.
            </returns>
        </member>
        <member name="P:DynamicData.Kernel.Optional`1.Value">
            <summary>
            Gets the value of the current <see cref="T:System.Nullable`1"/> value.
            </summary>
            
            <returns>
            The value of the current <see cref="T:System.Nullable`1"/> object if the <see cref="P:System.Nullable`1.HasValue"/> property is true. An exception is thrown if the <see cref="P:System.Nullable`1.HasValue"/> property is false.
            </returns>
            <exception cref="T:System.InvalidOperationException">The <see cref="P:System.Nullable`1.HasValue"/> property is false.</exception>
        </member>
        <member name="M:DynamicData.Kernel.Optional`1.op_Implicit(`0)~DynamicData.Kernel.Optional{`0}">
            <summary>
            Implicit cast from the vale to the optional
            </summary>
            <param name="value">The value.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.Optional`1.op_Explicit(DynamicData.Kernel.Optional{`0})~`0">
            <summary>
            Explicit cast from option to value
            </summary>
            <param name="value">The value.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.Optional`1.Equals(DynamicData.Kernel.Optional{`0})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.Optional`1.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.Optional`1.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Kernel.Optional`1.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.Kernel.OptionElse">
            <summary>
            Continuation container used for the else optator on an option object.
            </summary>
        </member>
        <member name="M:DynamicData.Kernel.OptionElse.Else(System.Action)">
            <summary>
            Invokes the specified action when an option has no value.
            </summary>
            <param name="action">The action.</param>
            <exception cref="T:System.ArgumentNullException">action</exception>
        </member>
        <member name="T:DynamicData.Kernel.OptionExtensions">
            <summary>
            Extensions for optional
            </summary>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.ValueOr``1(System.Nullable{``0},``0)">
            <summary>
            Returns the value if the nullable has a value, otherwise returns the result of the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="defaultValue">The default value</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.ValueOr``1(DynamicData.Kernel.Optional{``0},System.Func{``0})">
            <summary>
            Returns the value if the optional has a value, otherwise returns the result of the value selector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The value selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">valueSelector</exception>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.ValueOrDefault``1(DynamicData.Kernel.Optional{``0})">
            <summary>
            Returns the value if the optional has a value, otherwise returns the default value of T
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.ValueOrThrow``1(DynamicData.Kernel.Optional{``0},System.Func{System.Exception})">
            <summary>
            Returns the value if the optional has a value, otherwise throws an exception as specified by the exception generator
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="exceptionGenerator">The exception generator.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">exceptionGenerator</exception>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.ConvertOr``2(DynamicData.Kernel.Optional{``0},System.Func{``0,``1},System.Func{``1})">
            <summary>
            Converts the option value if it has a value, otherwise returns the result of the fallback converter
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="converter">The converter.</param>
            <param name="fallbackConverter">The fallback converter.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            converter
            or
            fallbackConverter
            </exception>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.Convert``2(DynamicData.Kernel.Optional{``0},System.Func{``0,``1})">
            <summary>
            Converts the specified source.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="converter">The converter.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">converter</exception>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.SelectValues``1(System.Collections.Generic.IEnumerable{DynamicData.Kernel.Optional{``0}})">
            <summary>
            Filters where Optional<typeparam name="T"></typeparam> has a value
            and return the values only
            </summary>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.Lookup``2(System.Collections.Generic.IDictionary{``1,``0},``1)">
            <summary>
            Overloads a TryGetValue of the dictionary wrapping the result as an Optional<typeparam>
                    <name>&amp;gt;TValue</name>
                </typeparam>
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="key">The key.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.RemoveIfContained``2(System.Collections.Generic.IDictionary{``1,``0},``1)">
            <summary>
            Removes item if contained in the cache
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="key">The key.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.FirstOrOptional``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})">
            <summary>
            Overloads Enumerable.FirstOrDefault() and wraps the result in a Optional<typeparam>
                    <name>&amp;gt;T</name>
                </typeparam> container
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="selector">The selector.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.Kernel.OptionExtensions.IfHasValue``1(DynamicData.Kernel.Optional{``0},System.Action{``0})">
            <summary>
            Invokes the specified action when 
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="action">The action.</param>
            <returns></returns>
        </member>
        <member name="T:DynamicData.Change`1">
            <summary>
              Container to describe a single change to a cache
            </summary>
        </member>
        <member name="P:DynamicData.Change`1.Reason">
            <summary>
            The reason for the change
            </summary>
        </member>
        <member name="P:DynamicData.Change`1.Item">
            <summary>
            A single item change
            </summary>
        </member>
        <member name="P:DynamicData.Change`1.Range">
            <summary>
            A multiple item change
            </summary>
        </member>
        <member name="P:DynamicData.Change`1.Type">
            <summary>
            Gets a value indicating whether the change is a single item change or a range change
            </summary>
            <value>
            The type.
            </value>
        </member>
        <member name="M:DynamicData.Change`1.#ctor(DynamicData.ListChangeReason,`0,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Change`1"/> class.
            </summary>
            <param name="reason">The reason.</param>
            <param name="current">The current.</param>
            <param name="index">The index.</param>
        </member>
        <member name="M:DynamicData.Change`1.#ctor(DynamicData.ListChangeReason,System.Collections.Generic.IEnumerable{`0},System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Change`1"/> class.
            </summary>
            <param name="reason">The reason.</param>
            <param name="items">The items.</param>
            <param name="index">The index.</param>
        </member>
        <member name="M:DynamicData.Change`1.#ctor(`0,System.Int32,System.Int32)">
            <summary>
            Constructor for ChangeReason.Move
            </summary>
            <param name="current">The current.</param>
            <param name="currentIndex">The CurrentIndex.</param>
            <param name="previousIndex">CurrentIndex of the previous.</param>
            <exception cref="T:System.ArgumentException">
            CurrentIndex must be greater than or equal to zero
            or
            PreviousIndex must be greater than or equal to zero
            </exception>
        </member>
        <member name="M:DynamicData.Change`1.#ctor(DynamicData.ListChangeReason,`0,DynamicData.Kernel.Optional{`0},System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Change`2" /> struct.
            </summary>
            <param name="reason">The reason.</param>
            <param name="current">The current.</param>
            <param name="previous">The previous.</param>
            <param name="currentIndex">Value of the current.</param>
            <param name="previousIndex">Value of the previous.</param>
            <exception cref="T:System.ArgumentException">
            For ChangeReason.Add, a previous value cannot be specified
            or
            For ChangeReason.Change, must supply previous value
            </exception>
            <exception cref="T:System.ArgumentException">For ChangeReason.Add, a previous value cannot be specified
            or
            For ChangeReason.Change, must supply previous value</exception>
        </member>
        <member name="M:DynamicData.Change`1.Equals(DynamicData.Change{`0})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Change`1.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Change`1.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.Change`1.ToString">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.ChangeAwareList`1">
            <summary>
            A list which captures all changes which are made to it. These changes are recorded until CaptureChanges() at which point the changes are cleared.
            
            Used for creating custom operators
            </summary>
            <seealso cref="T:DynamicData.IExtendedList`1" />
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.#ctor(System.Int32)">
            <summary>
            Create a change aware list with the specified capacity
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Create a change aware list with the specified items
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.#ctor(DynamicData.ChangeAwareList{`0},System.Boolean)">
            <summary>
            Clone an existing ChangeAwareList
            </summary>
            <param name="list">The original ChangeAwareList to copy</param>
            <param name="copyChanges">Should the list of changes also be copied over?</param>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.CaptureChanges">
            <summary>
            Create a changeset from recorded changes and clears known changes.
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.ClearChanges">
            <summary>
            Clears the changes (for testing).
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds the elements of the specified collection to the end of the collection.
            </summary>
            <param name="collection">The items to add.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection" /> is null.</exception>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.InsertRange(System.Collections.Generic.IEnumerable{`0},System.Int32)">
            <summary>
            Inserts the elements of a collection into the <see cref="T:System.Collections.Generic.List`1" /> at the specified index.
            </summary>
            <param name="collection">Inserts the specified items</param>
            <param name="index">The zero-based index at which the new elements should be inserted.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection" /> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is less than 0.-or-<paramref name="index" /> is greater than <see cref="P:System.Collections.Generic.List`1.Count" />.</exception>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.RemoveRange(System.Int32,System.Int32)">
            <summary>
            Removes a range of elements from the <see cref="T:System.Collections.Generic.List`1"/>.
            </summary>
            <param name="index">The zero-based starting index of the range of elements to remove.</param><param name="count">The number of elements to remove.</param><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.-or-<paramref name="count"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="index"/> and <paramref name="count"/> do not denote a valid range of elements in the <see cref="T:System.Collections.Generic.List`1"/>.</exception>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.Clear">
            <summary>
            Removes all elements from the list
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.OnSetItem(System.Int32,`0,`0)">
            <summary>
            Override for custom Set
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.OnInsertItems(System.Int32,System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Override for custom Insert
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.OnRemoveItems(System.Int32,System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Override for custom remove
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.RefreshAt(System.Int32)">
            <summary>
            Add a Refresh change of the item at the specified index to the list of changes.
            
            This is to notify downstream operators to refresh
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.Refresh(`0,System.Int32)">
            <summary>
            Add a Refresh change of the item at the specified index to the list of changes.
            
            This is to notify downstream operators to refresh
            </summary>
            <returns>If the item is in the list, returns true</returns>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.Refresh(`0)">
            <summary>
            Add a Refresh change for specified index to the list of changes.
             This is to notify downstream operators to refresh.
            </summary>
            <returns>If the item is in the list, returns true</returns>
        </member>
        <member name="P:DynamicData.ChangeAwareList`1.Last">
            <summary>
            Gets the last change in the collection
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.InsertItem(System.Int32,`0)">
            <summary>
            Inserts an item at the specified index
            </summary>
            <param name="index">the index where the item should be inserted</param>
            <param name="item"></param>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.RemoveItem(System.Int32)">
            <summary>
            Remove the item which is at the specified index
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.RemoveItem(System.Int32,`0)">
            <summary>
            Removes the item from the specified index - intended for internal use only
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.SetItem(System.Int32,`0)">
            <summary>
            Replaces the element which is as the specified index wth the specified item 
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.Move(`0,System.Int32)">
            <summary>
            Moves the item to the specified destination index
            </summary>
            <param name="item"></param>
            <param name="destination"></param>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.Move(System.Int32,System.Int32)">
            <summary>
            Moves an item from the original to the destination index
            </summary>
            <param name="original">The original.</param>
            <param name="destination">The destination.</param>
        </member>
        <member name="P:DynamicData.ChangeAwareList`1.Capacity">
            <summary>
            Gets or sets the total number of elements the internal data structure can hold without resizing.
            </summary>
        </member>
        <member name="P:DynamicData.ChangeAwareList`1.Count">
            <summary>
            Gets the element count
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.Contains(`0)">
            <summary>
            Determines whether the element is in the collection 
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array.
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.IndexOf(`0)">
            <summary>
            Searches for the specified object and returns the zero-based index of the first occurrence within the entire collection.
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.IndexOf(`0,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Searches for the specified object and returns the zero-based index of the first occurrence within the entire collection, using the specified comparer
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.Insert(System.Int32,`0)">
            <summary>
            Inserts an element into the list at the specified index.
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.RemoveAt(System.Int32)">
            <summary>
            Removes the item from the specified index
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.Add(`0)">
            <summary>
            Adds the item to the end of the collection
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.Remove(`0)">
            <summary>
            Removes the item from the collection and returns true if the item was successfully removed
            </summary>
        </member>
        <member name="P:DynamicData.ChangeAwareList`1.Item(System.Int32)">
            <summary>
            Gets or sets the item at the specified index
            </summary>
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.ChangeAwareList`1.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.ChangeAwareList`1.IsReadOnly">
            <summary>
            Is this collection read only
            </summary>
        </member>
        <member name="T:DynamicData.ChangeSet`1">
            <summary>
            A set of changes which has occured since the last reported change
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
        </member>
        <member name="F:DynamicData.ChangeSet`1.Empty">
            <summary>
            An empty change set
            </summary>
        </member>
        <member name="M:DynamicData.ChangeSet`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.ChangeSet`1"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.ChangeSet`1.#ctor(System.Collections.Generic.IEnumerable{DynamicData.Change{`0}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.ChangeSet`1" /> class.
            </summary>
            <param name="items">The items.</param>
            <exception cref="T:System.ArgumentNullException">items</exception>
        </member>
        <member name="P:DynamicData.ChangeSet`1.Adds">
            <summary>
                Gets the number of additions
            </summary>
        </member>
        <member name="P:DynamicData.ChangeSet`1.Replaced">
            <summary>
                Gets the number of updates
            </summary>
        </member>
        <member name="P:DynamicData.ChangeSet`1.Removes">
            <summary>
                Gets the number of removes
            </summary>
        </member>
        <member name="P:DynamicData.ChangeSet`1.Refreshes">
            <summary>
                Gets the number of removes
            </summary>
        </member>
        <member name="P:DynamicData.ChangeSet`1.Moves">
            <summary>
                Gets the number of moves
            </summary>
        </member>
        <member name="P:DynamicData.ChangeSet`1.TotalChanges">
            <summary>
                The total number if individual item changes
            </summary>
        </member>
        <member name="M:DynamicData.ChangeSet`1.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="T:DynamicData.ChangeSetEx">
            <summary>
            Change set extensions
            </summary>
        </member>
        <member name="M:DynamicData.ChangeSetEx.YieldWithoutIndex``1(System.Collections.Generic.IEnumerable{DynamicData.Change{``0}})">
            <summary>
            Remove the index from the changes
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ChangeSetEx.Unified``1(DynamicData.IChangeSet{``0})">
            <summary>
            Returns a flattend source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ChangeSetEx.Flatten``1(DynamicData.IChangeSet{``0})">
            <summary>
            Returns a flattend source with the index
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ChangeSetEx.GetChangeType(DynamicData.ListChangeReason)">
            <summary>
            Gets the type of the change i.e. whether it is an item or a range change
            </summary>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentOutOfRangeException"></exception>
        </member>
        <member name="M:DynamicData.ChangeSetEx.Transform``2(DynamicData.IChangeSet{``0},System.Func{``0,``1})">
            <summary>
            Transforms the changeset into a different type using the specified transform function.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="transformer">The transformer.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            transformer
            </exception>
        </member>
        <member name="T:DynamicData.ChangeType">
            <summary>
            Description of the type of change
            </summary>
        </member>
        <member name="F:DynamicData.ChangeType.Item">
            <summary>
            A single item change
            </summary>
        </member>
        <member name="F:DynamicData.ChangeType.Range">
            <summary>
            A multiple item change
            </summary>
        </member>
        <member name="T:DynamicData.IChangeSet`1">
            <summary>
            A collection of changes.
            
            Changes are always published in the order.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
        </member>
        <member name="P:DynamicData.IChangeSet`1.Replaced">
            <summary>
                Gets the number of updates
            </summary>
        </member>
        <member name="P:DynamicData.IChangeSet`1.TotalChanges">
            <summary>
            The total count of items changed
            </summary>
        </member>
        <member name="T:DynamicData.IChangeSetAdaptor`1">
            <summary>
            A simple adaptor to inject side effects into a changeset observable
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
        </member>
        <member name="M:DynamicData.IChangeSetAdaptor`1.Adapt(DynamicData.IChangeSet{`0})">
            <summary>
            Adapts the specified change.
            </summary>
            <param name="change">The change.</param>
        </member>
        <member name="T:DynamicData.IExtendedList`1">
            <summary>
            Represents a list which supports range operations
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.IExtendedList`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds the elements of the specified collection to the end of the collection.
            </summary>
            <param name="collection">The items to add</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection" /> is null.</exception>
        </member>
        <member name="M:DynamicData.IExtendedList`1.InsertRange(System.Collections.Generic.IEnumerable{`0},System.Int32)">
            <summary>
            Inserts the elements of a collection into the <see cref="T:System.Collections.Generic.List`1" /> at the specified index.
            </summary>
            <param name="collection">The items to insert</param>
            <param name="index">The zero-based index at which the new elements should be inserted.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection" /> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is less than 0.-or-<paramref name="index" /> is greater than <see cref="P:System.Collections.Generic.List`1.Count" />.</exception>
        </member>
        <member name="M:DynamicData.IExtendedList`1.RemoveRange(System.Int32,System.Int32)">
            <summary>
            Removes a range of elements from the <see cref="T:System.Collections.Generic.List`1"/>.
            </summary>
            <param name="index">The zero-based starting index of the range of elements to remove.</param><param name="count">The number of elements to remove.</param><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.-or-<paramref name="count"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="index"/> and <paramref name="count"/> do not denote a valid range of elements in the <see cref="T:System.Collections.Generic.List`1"/>.</exception>
        </member>
        <member name="M:DynamicData.IExtendedList`1.Move(System.Int32,System.Int32)">
            <summary>
            Moves an item from the original to the destination index
            </summary>
            <param name="original">The original.</param>
            <param name="destination">The destination.</param>
        </member>
        <member name="T:DynamicData.IGroup`2">
            <summary>
            A grouping of observable lists
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TGroup">The type of the group.</typeparam>
        </member>
        <member name="P:DynamicData.IGroup`2.GroupKey">
            <summary>
            Gets the group key.
            </summary>
        </member>
        <member name="P:DynamicData.IGroup`2.List">
            <summary>
            Gets the observable list.
            </summary>
        </member>
        <member name="T:DynamicData.List.IGrouping`2">
            <summary>
            Represents a group which provides an update after any value within the group changes
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TGroupKey">The type of the group key.</typeparam>
        </member>
        <member name="P:DynamicData.List.IGrouping`2.Key">
            <summary>
            Gets the group key
            </summary>
        </member>
        <member name="P:DynamicData.List.IGrouping`2.Items">
            <summary>
            Gets the items.
            </summary>
        </member>
        <member name="P:DynamicData.List.IGrouping`2.Count">
            <summary>
            Gets the count.
            </summary>
        </member>
        <member name="M:DynamicData.List.Internal.Distinct`2.ItemWithMatch.op_Equality(DynamicData.List.Internal.Distinct{`0,`1}.ItemWithMatch,DynamicData.List.Internal.Distinct{`0,`1}.ItemWithMatch)">
            <summary>Returns a value that indicates whether the values of two <see cref="T:DynamicData.List.Internal.Filter`1.ItemWithMatch" /> objects are equal.</summary>
            <param name="left">The first value to compare.</param>
            <param name="right">The second value to compare.</param>
            <returns>true if the <paramref name="left" /> and <paramref name="right" /> parameters have the same value; otherwise, false.</returns>
        </member>
        <member name="M:DynamicData.List.Internal.Distinct`2.ItemWithMatch.op_Inequality(DynamicData.List.Internal.Distinct{`0,`1}.ItemWithMatch,DynamicData.List.Internal.Distinct{`0,`1}.ItemWithMatch)">
            <summary>Returns a value that indicates whether two <see cref="T:DynamicData.List.Internal.Filter`1.ItemWithMatch" /> objects have different values.</summary>
            <param name="left">The first value to compare.</param>
            <param name="right">The second value to compare.</param>
            <returns>true if <paramref name="left" /> and <paramref name="right" /> are not equal; otherwise, false.</returns>
        </member>
        <member name="M:DynamicData.List.Internal.Filter`1.ItemWithMatch.op_Equality(DynamicData.List.Internal.Filter{`0}.ItemWithMatch,DynamicData.List.Internal.Filter{`0}.ItemWithMatch)">
            <summary>Returns a value that indicates whether the values of two <see cref="T:DynamicData.List.Internal.Filter`1.ItemWithMatch" /> objects are equal.</summary>
            <param name="left">The first value to compare.</param>
            <param name="right">The second value to compare.</param>
            <returns>true if the <paramref name="left" /> and <paramref name="right" /> parameters have the same value; otherwise, false.</returns>
        </member>
        <member name="M:DynamicData.List.Internal.Filter`1.ItemWithMatch.op_Inequality(DynamicData.List.Internal.Filter{`0}.ItemWithMatch,DynamicData.List.Internal.Filter{`0}.ItemWithMatch)">
            <summary>Returns a value that indicates whether two <see cref="T:DynamicData.List.Internal.Filter`1.ItemWithMatch" /> objects have different values.</summary>
            <param name="left">The first value to compare.</param>
            <param name="right">The second value to compare.</param>
            <returns>true if <paramref name="left" /> and <paramref name="right" /> are not equal; otherwise, false.</returns>
        </member>
        <member name="M:DynamicData.List.Internal.GroupOn`2.ItemWithGroupKey.op_Equality(DynamicData.List.Internal.GroupOn{`0,`1}.ItemWithGroupKey,DynamicData.List.Internal.GroupOn{`0,`1}.ItemWithGroupKey)">
            <summary>Returns a value that indicates whether the values of two <see cref="T:DynamicData.List.Internal.GroupOn`2.ItemWithGroupKey" /> objects are equal.</summary>
            <param name="left">The first value to compare.</param>
            <param name="right">The second value to compare.</param>
            <returns>true if the <paramref name="left" /> and <paramref name="right" /> parameters have the same value; otherwise, false.</returns>
        </member>
        <member name="M:DynamicData.List.Internal.GroupOn`2.ItemWithGroupKey.op_Inequality(DynamicData.List.Internal.GroupOn{`0,`1}.ItemWithGroupKey,DynamicData.List.Internal.GroupOn{`0,`1}.ItemWithGroupKey)">
            <summary>Returns a value that indicates whether two <see cref="T:DynamicData.List.Internal.GroupOn`2.ItemWithGroupKey" /> objects have different values.</summary>
            <param name="left">The first value to compare.</param>
            <param name="right">The second value to compare.</param>
            <returns>true if <paramref name="left" /> and <paramref name="right" /> are not equal; otherwise, false.</returns>
        </member>
        <member name="M:DynamicData.List.Internal.ReaderWriter`1.WriteNested(System.Action{DynamicData.IExtendedList{`0}})">
            <summary>
            Perform a recursive write operation.
            Changes are added to the topmost change tracker.
            Use only during an invocation of Write/WriteWithPreview.
            </summary>
        </member>
        <member name="T:DynamicData.List.Internal.ReferenceCountTracker`1">
            <summary>
            Ripped and adapted from https://clinq.codeplex.com/
            
            Thanks dudes
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.List.Internal.ReferenceCountTracker`1.Add(`0)">
            <summary>
                Increments the reference count for the item.  Returns true when refrence count goes from 0 to 1.
            </summary>
        </member>
        <member name="M:DynamicData.List.Internal.ReferenceCountTracker`1.Remove(`0)">
            <summary>
                Decrements the reference count for the item.  Returns true when refrence count goes from 1 to 0.
            </summary>
        </member>
        <member name="M:DynamicData.List.Linq.AddKeyEnumerator`2.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException"></exception>
        </member>
        <member name="T:DynamicData.List.Linq.WithoutIndexEnumerator`1">
            <summary>
            Index to remove the index. This is necessary for WhereReasonAre* operators. 
            Otherwise these operators could break subsequent operators when the subsequent operator relies on the index
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:DynamicData.IObservableList`1">
            <summary>
            A readonly observable list, providing  observable methods
            as well as data access methods
            </summary>
        </member>
        <member name="M:DynamicData.IObservableList`1.Connect(System.Func{`0,System.Boolean})">
            <summary>
            Connect to the observable list and observe any changes
            starting with the list's initial items. 
            </summary>
            <param name="predicate">The result will be filtered on the specified predicate.</param>
        </member>
        <member name="M:DynamicData.IObservableList`1.Preview(System.Func{`0,System.Boolean})">
            <summary>
            Connect to the observable list and observe any changes before they are applied to the list.
            Unlike Connect(), the returned observable is not prepended with the lists initial items.
            </summary>
            <param name="predicate">The result will be filtered on the specified predicate.</param>
        </member>
        <member name="P:DynamicData.IObservableList`1.CountChanged">
            <summary>
            Observe the count changes, starting with the inital items count
            </summary>
        </member>
        <member name="P:DynamicData.IObservableList`1.Items">
            <summary>
            Items enumerable
            </summary>
        </member>
        <member name="P:DynamicData.IObservableList`1.Count">
            <summary>
            Gets the count.
            </summary>
        </member>
        <member name="T:DynamicData.IPageChangeSet`1">
            <summary>
            Represents a paged subset of data reduced by a defined set of parameters
            Changes are always published in the order.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
        </member>
        <member name="P:DynamicData.IPageChangeSet`1.Response">
            <summary>
            The parameters used to virtualise the stream
            </summary>
        </member>
        <member name="T:DynamicData.ISourceList`1">
            <summary>
            An editable observable list, providing  observable methods
            as well as data access methods
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.ISourceList`1.Edit(System.Action{DynamicData.IExtendedList{`0}})">
            <summary>
            Edit the inner list within the list's internal locking mechanism
            </summary>
            <param name="updateAction">The update action.</param>
        </member>
        <member name="T:DynamicData.ItemChange`1">
            <summary>
            Container to describe a single change to a cache
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="F:DynamicData.ItemChange`1.Empty">
            <summary>
            An empty change
            </summary>
        </member>
        <member name="P:DynamicData.ItemChange`1.Reason">
            <summary>
            The reason for the change
            </summary>
        </member>
        <member name="P:DynamicData.ItemChange`1.Current">
            <summary>
            The item which has changed
            </summary>
        </member>
        <member name="P:DynamicData.ItemChange`1.CurrentIndex">
            <summary>
            The current index
            </summary>
        </member>
        <member name="P:DynamicData.ItemChange`1.Previous">
            <summary>
            The previous change.
            
            This is only when Reason==ChangeReason.Replace.
            </summary>
        </member>
        <member name="P:DynamicData.ItemChange`1.PreviousIndex">
            <summary>
            The previous index.
            
            This is only when Reason==ChangeReason.Replace or ChangeReason.Move.
            </summary>
        </member>
        <member name="M:DynamicData.ItemChange`1.#ctor(DynamicData.ListChangeReason,`0,DynamicData.Kernel.Optional{`0},System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.Change`2" /> struct.
            </summary>
            <param name="reason">The reason.</param>
            <param name="current">The current.</param>
            <param name="previous">The previous.</param>
            <param name="currentIndex">Value of the current.</param>
            <param name="previousIndex">Value of the previous.</param>
            <exception cref="T:System.ArgumentException">For ChangeReason.Add, a previous value cannot be specified
            or
            For ChangeReason.Change, must supply previous value</exception>
            <exception cref="T:System.ArgumentException">For ChangeReason.Add, a previous value cannot be specified
            or
            For ChangeReason.Change, must supply previous value</exception>
        </member>
        <member name="M:DynamicData.ItemChange`1.#ctor(DynamicData.ListChangeReason,`0,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.ItemChange`1"/> struct.
            </summary>
            <param name="reason">The reason.</param>
            <param name="current">The current.</param>
            <param name="currentIndex">Index of the current.</param>
        </member>
        <member name="M:DynamicData.ItemChange`1.Equals(DynamicData.ItemChange{`0})">
            <summary>
             Determines whether the specified object, is equal to this instance.
            </summary>
            <param name="other">The other.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ItemChange`1.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object" />, is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object" /> to compare with this instance.</param>
            <returns>
              <c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:DynamicData.ItemChange`1.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>
            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
            </returns>
        </member>
        <member name="M:DynamicData.ItemChange`1.op_Equality(DynamicData.ItemChange{`0},DynamicData.ItemChange{`0})">
            <summary>
             Determines whether the specified objects are equal
            </summary>
        </member>
        <member name="M:DynamicData.ItemChange`1.op_Inequality(DynamicData.ItemChange{`0},DynamicData.ItemChange{`0})">
            <summary>
             Determines whether the specified objects are not equal
            </summary>
        </member>
        <member name="M:DynamicData.ItemChange`1.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="T:DynamicData.IVirtualChangeSet`1">
            <summary>
            Represents a subset of data reduced by a defined set of parameters
            Changes are always published in the order.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
        </member>
        <member name="P:DynamicData.IVirtualChangeSet`1.Response">
            <summary>
            The parameters used to virtualise the stream
            </summary>
        </member>
        <member name="T:DynamicData.ListChangeReason">
            <summary>
             The reason for an individual change to an observable list
            
            Used to signal consumers of any changes to the underlying cache
            </summary>
        </member>
        <member name="F:DynamicData.ListChangeReason.Add">
            <summary>
             An item has been added
            </summary>
        </member>
        <member name="F:DynamicData.ListChangeReason.AddRange">
            <summary>
            A range of items has been added
            </summary>
        </member>
        <member name="F:DynamicData.ListChangeReason.Replace">
            <summary>
             An item has been replaced
            </summary>
        </member>
        <member name="F:DynamicData.ListChangeReason.Remove">
            <summary>
             An item has removed
            </summary>
        </member>
        <member name="F:DynamicData.ListChangeReason.RemoveRange">
            <summary>
            A range of items has been removed
            </summary>
        </member>
        <member name="F:DynamicData.ListChangeReason.Refresh">
            <summary>
              Command to operators to re-evaluate.
            </summary>
        </member>
        <member name="F:DynamicData.ListChangeReason.Moved">
            <summary>
            An item has been moved in a sorted collection
            </summary>
        </member>
        <member name="F:DynamicData.ListChangeReason.Clear">
            <summary>
            The entire collection has been cleared
            </summary>
        </member>
        <member name="T:DynamicData.ListEx">
            <summary>
            Extensions to help with maintainence of a list
            </summary>
        </member>
        <member name="M:DynamicData.ListEx.Clone``1(System.Collections.Generic.IList{``0},DynamicData.IChangeSet{``0})">
            <summary>
            Clones the list from the specified change set
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="changes">The changes.</param>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            changes
            </exception>
        </member>
        <member name="M:DynamicData.ListEx.Clone``1(System.Collections.Generic.IList{``0},DynamicData.IChangeSet{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Clones the list from the specified change set
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="changes">The changes.</param>
            <param name="equalityComparer">An equality comparer to match items in the changes.</param>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            changes
            </exception>
        </member>
        <member name="M:DynamicData.ListEx.Clone``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{DynamicData.Change{``0}},System.Collections.Generic.IEqualityComparer{``0})">
            <summary> 
            Clones the list from the specified enumerable of changes 
            </summary> 
            <typeparam name="T"></typeparam> 
            <param name="source">The source.</param> 
            <param name="changes">The changes.</param> 
            <param name="equalityComparer">An equality comparer to match items in the changes.</param> 
            <exception cref="T:System.ArgumentNullException"> 
            source 
            or 
            changes 
            </exception> 
        </member>
        <member name="M:DynamicData.ListEx.ClearOrRemoveMany``1(System.Collections.Generic.IList{``0},DynamicData.Change{``0})">
             <summary>
             Clears the collection if the number of items in the range is the same as the source collection. Otherwise a  remove many operation is applied.
            
             NB: This is because an observable change set may be a composite of multiple change sets in which case if one of them has clear operation applied it should not clear the entire result.
             </summary>
             <typeparam name="T"></typeparam>
             <param name="source">The source.</param>
             <param name="change">The change.</param>
        </member>
        <member name="M:DynamicData.ListEx.BinarySearch``1(System.Collections.Generic.IList{``0},``0)">
            <summary>
            Performs a binary search on the specified collection.
            </summary>
            <typeparam name="TItem">The type of the item.</typeparam>
            <param name="list">The list to be searched.</param>
            <param name="value">The value to search for.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ListEx.BinarySearch``1(System.Collections.Generic.IList{``0},``0,System.Collections.Generic.IComparer{``0})">
            <summary>
            Performs a binary search on the specified collection.
            </summary>
            <typeparam name="TItem">The type of the item.</typeparam>
            <param name="list">The list to be searched.</param>
            <param name="value">The value to search for.</param>
            <param name="comparer">The comparer that is used to compare the value with the list items.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ListEx.BinarySearch``2(System.Collections.Generic.IList{``0},``1,System.Func{``1,``0,System.Int32})">
             <summary>
             Performs a binary search on the specified collection.
            
             Thanks to http://stackoverflow.com/questions/967047/how-to-perform-a-binary-search-on-ilistt
             </summary>
             <typeparam name="TItem">The type of the item.</typeparam>
             <typeparam name="TSearch">The type of the searched item.</typeparam>
             <param name="list">The list to be searched.</param>
             <param name="value">The value to search for.</param>
             <param name="comparer">The comparer that is used to compare the value with the list items.</param>
             <returns></returns>
        </member>
        <member name="M:DynamicData.ListEx.IndexOfOptional``1(System.Collections.Generic.IEnumerable{``0},``0,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Lookups the item using the specified comparer. If matched, the item's index is also returned
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
            <param name="equalityComparer">The equality comparer.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ListEx.IndexOf``1(System.Collections.Generic.IEnumerable{``0},``0)">
            <summary>
            Finds the index of the current item using the specified equality comparer
            </summary>
            <typeparam name="T"></typeparam>
            <param name="item"></param>
            <param name="source"></param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ListEx.IndexOf``1(System.Collections.Generic.IEnumerable{``0},``0,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Finds the index of the current item using the specified equality comparer
            </summary>
            <typeparam name="T"></typeparam>
            <param name="item"></param>
            <param name="equalityComparer">Use to determine object equality</param>
            <param name="source"></param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ListEx.Add``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Adds the  items to the specified list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            items
            </exception>
        </member>
        <member name="M:DynamicData.ListEx.AddRange``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Adds the range to the source ist
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            items
            </exception>
        </member>
        <member name="M:DynamicData.ListEx.AddRange``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},System.Int32)">
            <summary>
            Adds the range to the list. The starting range is at the specified index
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
            <param name="index">The index.</param>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ListEx.AddOrInsertRange``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0},System.Int32)">
            <summary>
            Adds the range if a negative is specified, otherwise the range is added at the end of the list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
            <param name="index">The index.</param>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ListEx.RemoveMany``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Removes many items from the collection in an optimal way
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="itemsToRemove">The items to remove.</param>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ListEx.RemoveRange``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32)">
            <summary>
            Removes the number of items, starting at the specified index
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="index">The index.</param>
            <param name="count">The count.</param>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.NotSupportedException">Cannot remove range</exception>
        </member>
        <member name="M:DynamicData.ListEx.Remove``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Removes the  items from the specified list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            items
            </exception>
        </member>
        <member name="M:DynamicData.ListEx.Replace``1(System.Collections.Generic.IList{``0},``0,``0)">
            <summary>
            Replaces the specified item.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="original">The original.</param>
            <param name="replacewith">The replacewith.</param>
            <exception cref="T:System.ArgumentNullException">source
            or
            items</exception>
        </member>
        <member name="M:DynamicData.ListEx.ReplaceOrAdd``1(System.Collections.Generic.IList{``0},``0,``0)">
            <summary>
            Replaces the item if found, otherwise the item is added to the list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="original">The original.</param>
            <param name="replacewith">The replacewith.</param>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ListEx.Replace``1(System.Collections.Generic.IList{``0},``0,``0,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Replaces the specified item.
            </summary>
            <param name="source">The source.</param>
            <param name="original">The item which is to be replaced. If not in the list and argument exception will be thrown</param>
            <param name="replaceWith">The new item</param>
            <param name="comparer">The equality comparer to be used to find the original item in the list</param>
            <exception cref="T:System.ArgumentNullException">source
            or
            items</exception>
        </member>
        <member name="T:DynamicData.ListFilterPolicy">
            <summary>
            Specifies which filter strategy should be used when the filter predicate is changed
            </summary>
        </member>
        <member name="F:DynamicData.ListFilterPolicy.ClearAndReplace">
            <summary>
            Clear all items and replace with matches - optimised for large data sets.
            
            This option preserves order.
            </summary>
        </member>
        <member name="F:DynamicData.ListFilterPolicy.CalculateDiff">
            <summary>
            Calculate diff set - optimised for general filtering.
            
            This option does not preserve order.
            </summary>
        </member>
        <member name="T:DynamicData.ObservableListEx">
            <summary>
            Extensions for ObservableList
            </summary>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToObservableChangeSet``1(System.IObservable{``0},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Converts the observable to an observable changeset.
            Change set observes observable change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="scheduler">The scheduler (only used for time expiry).</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToObservableChangeSet``1(System.IObservable{``0},System.Func{``0,System.Nullable{System.TimeSpan}},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Converts the observable to an observable changeset, allowing time expiry to be specified.
            Change set observes observable change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="expireAfter">Specify on a per object level the maximum time before an object expires from a cache</param>
            <param name="scheduler">The scheduler (only used for time expiry).</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToObservableChangeSet``1(System.IObservable{``0},System.Int32,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Converts the observable to an observable changeset, with a specified limit of how large the list can be.
            Change set observes observable change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="limitSizeTo">Remove the oldest items when the size has reached this limit</param>
            <param name="scheduler">The scheduler (only used for time expiry).</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToObservableChangeSet``1(System.IObservable{``0},System.Func{``0,System.Nullable{System.TimeSpan}},System.Int32,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Converts the observable to an observable changeset, allowing size and time limit to be specified.
            Change set observes observable change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="expireAfter">Specify on a per object level the maximum time before an object expires from a cache</param>
            <param name="limitSizeTo">Remove the oldest items when the size has reached this limit</param>
            <param name="scheduler">The scheduler (only used for time expiry).</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToObservableChangeSet``1(System.IObservable{System.Collections.Generic.IEnumerable{``0}},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Converts the observable to an observable changeset.
            Change set observes observable change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="scheduler">The scheduler (only used for time expiry).</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToObservableChangeSet``1(System.IObservable{System.Collections.Generic.IEnumerable{``0}},System.Int32,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Converts the observable to an observable changeset, allowing size and time limit to be specified.
            Change set observes observable change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="limitSizeTo">Remove the oldest items when the size has reached this limit</param>
            <param name="scheduler">The scheduler (only used for time expiry).</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToObservableChangeSet``1(System.IObservable{System.Collections.Generic.IEnumerable{``0}},System.Func{``0,System.Nullable{System.TimeSpan}},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Converts the observable to an observable changeset, allowing size to be specified.
            Change set observes observable change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="expireAfter">Specify on a per object level the maximum time before an object expires from a cache</param>
            <param name="scheduler">The scheduler (only used for time expiry).</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToObservableChangeSet``1(System.IObservable{System.Collections.Generic.IEnumerable{``0}},System.Func{``0,System.Nullable{System.TimeSpan}},System.Int32,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Converts the observable to an observable changeset, allowing size and time limit to be specified.
            Change set observes observable change events.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="expireAfter">Specify on a per object level the maximum time before an object expires from a cache</param>
            <param name="limitSizeTo">Remove the oldest items when the size has reached this limit</param>
            <param name="scheduler">The scheduler (only used for time expiry).</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            keySelector</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.AutoRefresh``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically refresh downstream operators when any property changes.
            </summary>
            <param name="source">The source observable</param>
            <param name="changeSetBuffer">Batch up changes by specifying the buffer. This greatly increases performance when many elements have sucessive property changes</param>
            <param name="propertyChangeThrottle">When observing on multiple property changes, apply a throttle to prevent excessive refesh invocations</param>
            <param name="scheduler">The scheduler</param>
            <returns>An observable change set with additional refresh changes</returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.AutoRefresh``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically refresh downstream operators when properties change.
            </summary>
            <param name="source">The source observable</param>
            <param name="propertyAccessor">Specify a property to observe changes. When it changes a Refresh is invoked</param>
            <param name="changeSetBuffer">Batch up changes by specifying the buffer. This greatly increases performance when many elements have sucessive property changes</param>
            <param name="propertyChangeThrottle">When observing on multiple property changes, apply a throttle to prevent excessive refesh invocations</param>
            <param name="scheduler">The scheduler</param>
            <returns>An observable change set with additional refresh changes</returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.AutoRefreshOnObservable``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.IObservable{``1}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Automatically refresh downstream operator. The refresh is triggered when the observable receives a notification
            </summary>
            <param name="source">The source observable change set</param>
            <param name="reevaluator">An observable which acts on items within the collection and produces a value when the item should be refreshed</param>
            <param name="changeSetBuffer">Batch up changes by specifying the buffer. This greatly increases performance when many elements require a refresh</param>
            <param name="scheduler">The scheduler</param>
            <returns>An observable change set with additional refresh changes</returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.SupressRefresh``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Supress  refresh notifications
            </summary>
            <param name="source">The source observable change set</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.RemoveIndex``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Removes the index from all changes.
            
            NB: This operator has been introduced as a temporary fix for creating an Or operator using merge many.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.AddKey``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1})">
            <summary>
            Adds a key to the change set result which enables all observable cache features of dynamic data
            </summary>
            <remarks>
            All indexed changes are dropped i.e. sorting is not supported by this function
            </remarks>
            <typeparam name="TObject">The type of  object.</typeparam>
            <typeparam name="TKey">The type of  key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Convert``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1})">
            <summary>
            Convert the object using the sepcified conversion function.
            
            This is a lighter equivalent of Transform and is designed to be used with non-disposable objects
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="conversionFactory">The conversion factory.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.CastToObject``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Cast the underlying type of an object. Use before a Cast function
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Cast``1(System.IObservable{DynamicData.IChangeSet{System.Object}})">
            <summary>
            Cast the changes to another form
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Cast``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1})">
            <summary>
            Cast the changes to another form
            
            Alas, I had to add the converter due to type inference issues. The converter can be avoided by CastToObject() first
            </summary>
            <typeparam name="TSource">The type of the object.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="conversionFactory">The conversion factory.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Bind``1(System.IObservable{DynamicData.IChangeSet{``0}},DynamicData.Binding.IObservableCollection{``0},System.Int32)">
            <summary>
            Binds a clone of the observable changeset to the target observable collection
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="targetCollection">The target collection.</param>
            <param name="resetThreshold">The reset threshold.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            targetCollection
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Bind``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Collections.ObjectModel.ReadOnlyObservableCollection{``0}@,System.Int32)">
            <summary>
            Creates a binding to a readonly observable collection which is specified as an 'out' parameter
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="readOnlyObservableCollection">The resulting read only observable collection.</param>
            <param name="resetThreshold">The reset threshold.</param>
            <returns>A continuation of the source stream</returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Bind``1(System.IObservable{DynamicData.IChangeSet{``0}},System.ComponentModel.BindingList{``0},System.Int32)">
            <summary>
            Binds a clone of the observable changeset to the target observable collection
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="bindingList">The target binding list</param>
            <param name="resetThreshold">The reset threshold.</param>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            targetCollection
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Adapt``1(System.IObservable{DynamicData.IChangeSet{``0}},DynamicData.IChangeSetAdaptor{``0})">
            <summary>
            Injects a side effect into a changeset observable
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="adaptor">The adaptor.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            adaptor
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.PopulateInto``1(System.IObservable{DynamicData.IChangeSet{``0}},DynamicData.ISourceList{``0})">
            <summary>
            list.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="destination">The destination.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            destination
            </exception>
            <exception cref="T:System.ArgumentNullException">source
            or
            destination</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.AsObservableList``1(DynamicData.ISourceList{``0})">
            <summary>
            Converts the source list to an read only observable list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.AsObservableList``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Converts the source observable to an read only observable list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.RefCount``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            List equivalent to Publish().RefCount().  The source is cached so long as there is at least 1 subscriber.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Filter``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Boolean})">
            <summary>
            Filters the source using the specified valueSelector
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="predicate">The valueSelector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Filter``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{System.Func{``0,System.Boolean}},DynamicData.ListFilterPolicy)">
            <summary>
            Filters source using the specified filter observable predicate.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="predicate"></param>
            <param name="filterPolicy">Should the filter clear and replace, or calculate a diff-set</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            filterController</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.FilterOnProperty``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Func{``0,System.Boolean},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Filters source on the specified property using the specified predicate.
            
            The filter will automatically reapply when a property changes 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TProperty">The type of the property.</typeparam>
            <param name="source">The source.</param>
            <param name="propertySelector">The property selector. When the property changes the filter specified will be re-evaluated</param>
            <param name="predicate">A predicate based on the object which contains the changed property</param>
            <param name="propertyChangedThrottle">The property changed throttle.</param>
            <param name="scheduler">The scheduler used when throttling</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.FilterOnObservable``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.IObservable{System.Boolean}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Filters source on the specified observable property using the specified predicate.
            
            The filter will automatically reapply when a property changes 
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="objectFilterObservable">The filter property selector. When the observable changes the filter will be re-evaluated</param>
            <param name="propertyChangedThrottle">The property changed throttle.</param>
            <param name="scheduler">The scheduler used when throttling</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Reverse``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Reverse sort of the changset
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            comparer
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Transform``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1},System.Boolean)">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="transformOnRefresh">Should a new transform be applied when a refresh event is received</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            valueSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Transform``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Int32,``1},System.Boolean)">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform function</param>
            <param name="transformOnRefresh">Should a new transform be applied when a refresh event is received</param>
            <returns>A an observable changeset of the transformed object</returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            valueSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Transform``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,DynamicData.Kernel.Optional{``1},``1},System.Boolean)">
            <summary>
            Projects each update item to a new form using the specified transform function.
            
            *** Annoyingly when using this overload you will have to explicitly specify the generic type arguments as type inference fails
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform function</param>
            <param name="transformOnRefresh">Should a new transform be applied when a refresh event is received</param>
            <returns>A an observable changeset of the transformed object</returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            valueSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Transform``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,DynamicData.Kernel.Optional{``1},System.Int32,``1},System.Boolean)">
            <summary>
            Projects each update item to a new form using the specified transform function
            
            *** Annoyingly when using this overload you will have to explicy specify the generic type arguments as type inference fails
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="transformOnRefresh">Should a new transform be applied when a refresh event is received</param>
            <returns>A an observable changeset of the transformed object</returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            valueSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.TransformAsync``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.Threading.Tasks.Task{``1}})">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <returns>A an observable changeset of the transformed object</returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            valueSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.TransformMany``2(System.IObservable{DynamicData.IChangeSet{``1}},System.Func{``1,System.Collections.Generic.IEnumerable{``0}},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Equivalent to a select many transform. To work, the key must individually identify each child.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <param name="source">The source.</param>
            <param name="manyselector">The manyselector.</param>
            <param name="equalityComparer">Used when an item has been replaced to determine whether child items are the same as previous children</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            manyselector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.TransformMany``2(System.IObservable{DynamicData.IChangeSet{``1}},System.Func{``1,System.Collections.ObjectModel.ObservableCollection{``0}},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Flatten the nested observable collection, and  observe subsequentl observable collection changes
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <param name="source">The source.</param>
            <param name="manyselector">The manyselector.</param>
            <param name="equalityComparer">Used when an item has been replaced to determine whether child items are the same as previous children</param>
        </member>
        <member name="M:DynamicData.ObservableListEx.TransformMany``2(System.IObservable{DynamicData.IChangeSet{``1}},System.Func{``1,System.Collections.ObjectModel.ReadOnlyObservableCollection{``0}},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Flatten the nested observable collection, and  observe subsequentl observable collection changes
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <param name="source">The source.</param>
            <param name="manyselector">The manyselector.</param>
            <param name="equalityComparer">Used when an item has been replaced to determine whether child items are the same as previous children</param>
        </member>
        <member name="M:DynamicData.ObservableListEx.TransformMany``2(System.IObservable{DynamicData.IChangeSet{``1}},System.Func{``1,DynamicData.IObservableList{``0}},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Flatten the nested observable list, and observe subsequent observable collection changes
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <param name="source">The source.</param>
            <param name="manyselector">The manyselector.</param>
            <param name="equalityComparer">Used when an item has been replaced to determine whether child items are the same as previous children</param>
        </member>
        <member name="M:DynamicData.ObservableListEx.DistinctValues``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1})">
            <summary>
            Selects distinct values from the source, using the specified value selector
            </summary>
            <typeparam name="TObject">The type of the source.</typeparam>
            <typeparam name="TValue">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="valueSelector">The transform factory.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            valueSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.GroupOn``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1},System.IObservable{System.Reactive.Unit})">
            <summary>
             Groups the source on the value returned by group selector factory.  The groupings contains an inner observable list.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TGroup">The type of the group.</typeparam>
            <param name="source">The source.</param>
            <param name="groupSelector">The group selector.</param>
            <param name="regrouper">Force the grouping function to recalculate the group value.
            For example if you have a time based grouping with values like `Last Minute', 'Last Hour', 'Today' etc regrouper is used to refresh these groupings</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            groupSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.GroupWithImmutableState``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1},System.IObservable{System.Reactive.Unit})">
            <summary>
             Groups the source on the value returned by group selector factory. Each update produces immuatable grouping.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TGroupKey">The type of the group key.</typeparam>
            <param name="source">The source.</param>
            <param name="groupSelectorKey">The group selector key.</param>
            <param name="regrouper">Force the grouping function to recalculate the group value.
            For example if you have a time based grouping with values like `Last Minute', 'Last Hour', 'Today' etc regrouper is used to refresh these groupings</param>
            <returns></returns>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            groupSelectorKey
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.GroupOnProperty``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Groups the source using the property specified by the property selector.  The resulting groupings contains an inner observable list.
            Groups are re-applied when the property value changed.
            When there are likely to be a large number of group property changes specify a throttle to improve performance
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TGroup">The type of the group.</typeparam>
            <param name="source">The source.</param>
            <param name="propertySelector">The property selector used to group the items</param>
            <param name="propertyChangedThrottle">The property changed throttle.</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.GroupOnPropertyWithImmutableState``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Groups the source using the property specified by the property selector.  The resulting groupings are immutable.
            Groups are re-applied when the property value changed.
            When there are likely to be a large number of group property changes specify a throttle to improve performance
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TGroup">The type of the group.</typeparam>
            <param name="source">The source.</param>
            <param name="propertySelector">The property selector used to group the items</param>
            <param name="propertyChangedThrottle">The property changed throttle.</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.NotEmpty``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Prevents an empty notification
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Clone``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Collections.Generic.IList{``0})">
            <summary>
            Clones the target list as a side effect of the stream
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="target"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Sort``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Collections.Generic.IComparer{``0},DynamicData.SortOptions,System.IObservable{System.Reactive.Unit},System.IObservable{System.Collections.Generic.IComparer{``0}},System.Int32)">
            <summary>
            Sorts the sequence using the specified comparer.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="comparer">The comparer used for sorting</param>
            <param name="options">For improved performance, specify SortOptions.UseBinarySearch. This can only be used when the values which are sorted on are immutable</param>
            <param name="resetThreshold">Since sorting can be slow for large record sets, the reset threshold is used to force the list re-ordered </param>
            <param name="resort">OnNext of this observable causes data to resort. This is required when the value which is sorted on mutable</param>
            <param name="comparerChanged">An observable comparer used to change the comparer on which the sorted list i</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            comparer</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Sort``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{System.Collections.Generic.IComparer{``0}},DynamicData.SortOptions,System.IObservable{System.Reactive.Unit},System.Int32)">
            <summary>
            Sorts the sequence using the specified observable comparer.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="options">For improved performance, specify SortOptions.UseBinarySearch. This can only be used when the values which are sorted on are immutable</param>
            <param name="resetThreshold">Since sorting can be slow for large record sets, the reset threshold is used to force the list re-ordered </param>
            <param name="resort">OnNext of this observable causes data to resort. This is required when the value which is sorted on mutable</param>
            <param name="comparerChanged">An observable comparer used to change the comparer on which the sorted list i</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            comparer</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ForEachChange``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Action{DynamicData.Change{``0}})">
            <summary>
            Provides a call back for each item change.
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ForEachItemChange``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Action{DynamicData.ItemChange{``0}})">
            <summary>
            Provides a call back for each item change.
            
            Range changes are flattened, so there is only need to check for Add, Replace, Remove and Clear
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="action">The action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.MergeMany``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.IObservable{``1}})">
            <summary>
            Dynamically merges the observable which is selected from each item in the stream, and unmerges the item
            when it is no longer part of the stream.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="observableSelector">The observable selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            observableSelector</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.WhenValueChanged``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Boolean)">
            <summary>
            Watches each item in the collection and notifies when any of them has changed
            </summary>
            <typeparam name="TObject"></typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="propertyAccessor">The property accessor.</param>
            <param name="notifyOnInitialValue">if set to <c>true</c> [notify on initial value].</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.WhenPropertyChanged``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Boolean)">
            <summary>
            Watches each item in the collection and notifies when any of them has changed
            </summary>
            <typeparam name="TObject"></typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="source">The source.</param>
            <param name="propertyAccessor">The property accessor.</param>
            <param name="notifyOnInitialValue">if set to <c>true</c> [notify on initial value].</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.WhenAnyPropertyChanged``1(System.IObservable{DynamicData.IChangeSet{``0}},System.String[])">
            <summary>
            Watches each item in the collection and notifies when any of them has changed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="propertiesToMonitor">specify properties to Monitor, or omit to monitor all property changes</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.SubscribeMany``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,System.IDisposable})">
            <summary>
            Subscribes to each item when it is added to the stream and unsubcribes when it is removed.  All items will be unsubscribed when the stream is disposed
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="subscriptionFactory">The subsription function</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            subscriptionFactory</exception>
            <remarks>
            Subscribes to each item when it is added or updates and unsubcribes when it is removed
            </remarks>
        </member>
        <member name="M:DynamicData.ObservableListEx.DisposeMany``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Disposes each item when no longer required.
            
            Individual items are disposed when removed or replaced. All items
            are disposed when the stream is disposed
            </summary>
            <remarks>
            </remarks>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns>A continuation of the original stream</returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.OnItemRemoved``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Action{``0})">
            <summary>
            Callback for each item as and when it is being removed from the stream
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="removeAction">The remove action.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            removeAction
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.OnItemAdded``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Action{``0})">
            <summary>
            Callback for each item as and when it is being added to the stream
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="addAction">The add action.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.WhereReasonsAre``1(System.IObservable{DynamicData.IChangeSet{``0}},DynamicData.ListChangeReason[])">
            <summary>
            Includes changes for the specified reasons only
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="reasons">The reasons.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentException">Must enter at least 1 reason</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.WhereReasonsAreNot``1(System.IObservable{DynamicData.IChangeSet{``0}},DynamicData.ListChangeReason[])">
            <summary>
            Excludes updates for the specified reasons
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="reasons">The reasons.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentException">Must enter at least 1 reason</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.BufferInitial``1(System.IObservable{DynamicData.IChangeSet{``0}},System.TimeSpan,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Buffers changes for an intial period only. After the period has elapsed, not further buffering occurs. 
            </summary>
            <param name="source">The source changeset</param>
            <param name="initalBuffer">The period to buffer, measure from the time that the first item arrives</param>
            <param name="scheduler">The scheduler to buffer on</param>
        </member>
        <member name="M:DynamicData.ObservableListEx.FlattenBufferResult``1(System.IObservable{System.Collections.Generic.IList{DynamicData.IChangeSet{``0}}})">
            <summary>
            Convert the result of a buffer operation to a change set
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.BufferIf``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{System.Boolean},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received.
            When a resume signal has been received the batched updates will  be fired.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="pauseIfTrueSelector">When true, observable begins to buffer and when false, window closes and buffered result if notified</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.BufferIf``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{System.Boolean},System.Boolean,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received.
            When a resume signal has been received the batched updates will  be fired.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="pauseIfTrueSelector">When true, observable begins to buffer and when false, window closes and buffered result if notified</param>
            <param name="intialPauseState">if set to <c>true</c> [intial pause state].</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.BufferIf``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{System.Boolean},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received.
            When a resume signal has been received the batched updates will  be fired.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="pauseIfTrueSelector">When true, observable begins to buffer and when false, window closes and buffered result if notified</param>
            <param name="timeOut">Specify a time to ensure the buffer window does not stay open for too long</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.BufferIf``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{System.Boolean},System.Boolean,System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Batches the underlying updates if a pause signal (i.e when the buffer selector return true) has been received.
            When a resume signal has been received the batched updates will  be fired.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="pauseIfTrueSelector">When true, observable begins to buffer and when false, window closes and buffered result if notified</param>
            <param name="intialPauseState">if set to <c>true</c> [intial pause state].</param>
            <param name="timeOut">Specify a time to ensure the buffer window does not stay open for too long</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.QueryWhenChanged``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{System.Collections.Generic.IReadOnlyCollection{``0},``1})">
            <summary>
             The latest copy of the cache is exposed for querying after each modification to the underlying data
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="resultSelector">The result selector.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            resultSelector
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.QueryWhenChanged``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            The latest copy of the cache is exposed for querying i)  after each modification to the underlying data ii) upon subscription
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToCollection``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Converts the changeset into a fully formed collection. Each change in the source results in a new collection
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToSortedCollection``2(System.IObservable{DynamicData.IChangeSet{``0}},System.Func{``0,``1},DynamicData.Binding.SortDirection)">
            <summary>
            Converts the changeset into a fully formed sorted collection. Each change in the source results in a new sorted collection
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TSortKey">The sort key</typeparam>
            <param name="source">The source.</param>
            <param name="sort">The sort function</param>
            <param name="sortOrder">The sort order. Defaults to ascending</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.ToSortedCollection``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Collections.Generic.IComparer{``0})">
            <summary>
            Converts the changeset into a fully formed sorted collection. Each change in the source results in a new sorted collection
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="comparer">The sort comparer</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.SkipInitial``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Defer the subscribtion until loaded and skip initial changeset
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.DeferUntilLoaded``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Defer the subscription until the stream has been inflated with data
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.DeferUntilLoaded``1(DynamicData.IObservableList{``0})">
            <summary>
            Defer the subscription until the cache has been inflated with data
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Virtualise``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{DynamicData.IVirtualRequest})">
            <summary>
            Virtualises the source using parameters provided via the requests observable
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="requests">The requests.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Top``1(System.IObservable{DynamicData.IChangeSet{``0}},System.Int32)">
            <summary>
            Limits the size of the result set to the specified number of items
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="numberOfItems">The number of items.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Page``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{DynamicData.IPageRequest})">
            <summary>
            Applies paging to the the data source
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="requests">Observable to control page requests</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.LimitSizeTo``1(DynamicData.ISourceList{``0},System.Int32,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Limits the size of the source cache to the specified limit. 
            Notifies which items have been removed from the source list.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="sizeLimit">The size limit.</param>
            <param name="scheduler">The scheduler.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentException">sizeLimit cannot be zero</exception>
            <exception cref="T:System.ArgumentNullException">source</exception>
            <exception cref="T:System.ArgumentException">sizeLimit cannot be zero</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ExpireAfter``1(DynamicData.ISourceList{``0},System.Func{``0,System.Nullable{System.TimeSpan}},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Removes items from the cache according to the value specified by the time selector function
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="timeSelector">Selector returning when to expire the item. Return null for non-expiring item</param>
            <param name="scheduler">The scheduler</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.ExpireAfter``1(DynamicData.ISourceList{``0},System.Func{``0,System.Nullable{System.TimeSpan}},System.Nullable{System.TimeSpan},System.Reactive.Concurrency.IScheduler)">
            <summary>
            Removes items from the cache according to the value specified by the time selector function
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="timeSelector">Selector returning when to expire the item. Return null for non-expiring item</param>
            <param name="pollingInterval">Enter the polling interval to optimise expiry timers, if ommited 1 timer is created for each unique expiry time</param>
            <param name="scheduler">The scheduler</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Or``1(System.Collections.Generic.ICollection{System.IObservable{DynamicData.IChangeSet{``0}}})">
            <summary>
            Apply a logical Or operator between the collections.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Or``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{DynamicData.IChangeSet{``0}}[])">
            <summary>
            Apply a logical Or operator between the collections.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="others">The others.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Or``1(DynamicData.IObservableList{System.IObservable{DynamicData.IChangeSet{``0}}})">
            <summary>
            Dynamically apply a logical Or operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Or``1(DynamicData.IObservableList{DynamicData.IObservableList{``0}})">
            <summary>
            Dynamically apply a logical Or operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Or``1(DynamicData.IObservableList{DynamicData.ISourceList{``0}})">
            <summary>
            Dynamically apply a logical Or operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Xor``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{DynamicData.IChangeSet{``0}}[])">
            <summary>
            Apply a logical Xor operator between the collections.
            Items which are only in one of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="others">The others.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Xor``1(System.Collections.Generic.ICollection{System.IObservable{DynamicData.IChangeSet{``0}}})">
            <summary>
            Apply a logical Xor operator between the collections.
            Items which are only in one of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The sources.</param>
            <returns></returns>>
        </member>
        <member name="M:DynamicData.ObservableListEx.Xor``1(DynamicData.IObservableList{System.IObservable{DynamicData.IChangeSet{``0}}})">
            <summary>
            Dynamically apply a logical Xor operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Xor``1(DynamicData.IObservableList{DynamicData.IObservableList{``0}})">
            <summary>
            Dynamically apply a logical Xor operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Xor``1(DynamicData.IObservableList{DynamicData.ISourceList{``0}})">
            <summary>
            Dynamically apply a logical Xor operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.And``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{DynamicData.IChangeSet{``0}}[])">
            <summary>
            Apply a logical And operator between the collections.
            Items which are in all of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="others">The others.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.And``1(System.Collections.Generic.ICollection{System.IObservable{DynamicData.IChangeSet{``0}}})">
            <summary>
            Apply a logical And operator between the collections.
            Items which are in all of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The sources.</param>
            <returns></returns>>
        </member>
        <member name="M:DynamicData.ObservableListEx.And``1(DynamicData.IObservableList{System.IObservable{DynamicData.IChangeSet{``0}}})">
            <summary>
            Dynamically apply a logical And operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.And``1(DynamicData.IObservableList{DynamicData.IObservableList{``0}})">
            <summary>
            Dynamically apply a logical And operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.And``1(DynamicData.IObservableList{DynamicData.ISourceList{``0}})">
            <summary>
            Dynamically apply a logical And operator between the items in the outer observable list.
            Items which are in any of the sources are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Except``1(System.IObservable{DynamicData.IChangeSet{``0}},System.IObservable{DynamicData.IChangeSet{``0}}[])">
            <summary>
            Apply a logical Except operator between the collections.
            Items which are in the source and not in the others are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="others">The others.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Except``1(System.Collections.Generic.ICollection{System.IObservable{DynamicData.IChangeSet{``0}}})">
            <summary>
            Apply a logical Except operator between the collections.
            Items which are in the source and not in the others are included in the result
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The sources.</param>
            <returns></returns>>
        </member>
        <member name="M:DynamicData.ObservableListEx.Except``1(DynamicData.IObservableList{System.IObservable{DynamicData.IChangeSet{``0}}})">
            <summary>
            Dynamically apply a logical Except operator. Items from the first observable list are included when an equivalent item does not exist in the other sources.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Except``1(DynamicData.IObservableList{DynamicData.IObservableList{``0}})">
            <summary>
            Dynamically apply a logical Except operator. Items from the first observable list are included when an equivalent item does not exist in the other sources.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Except``1(DynamicData.IObservableList{DynamicData.ISourceList{``0}})">
            <summary>
            Dynamically apply a logical Except operator. Items from the first observable list are included when an equivalent item does not exist in the other sources.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sources">The source.</param>
            <returns></returns>
        </member>
        <member name="M:DynamicData.ObservableListEx.Switch``1(System.IObservable{DynamicData.IObservableList{``0}})">
            <summary>
            Transforms an observable sequence of observable lists into a single sequence
            producing values only from the most recent observable sequence.
            Each time a new inner observable sequence is received, unsubscribe from the
            previous inner observable sequence and clear the existing result set
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="sources">The source.</param>
            <returns>
            The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received.
            </returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="sources" /> is null.</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.Switch``1(System.IObservable{System.IObservable{DynamicData.IChangeSet{``0}}})">
            <summary>
            Transforms an observable sequence of observable changes sets into an observable sequence
            producing values only from the most recent observable sequence.
            Each time a new inner observable sequence is received, unsubscribe from the
            previous inner observable sequence and clear the existing resukt set
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="sources">The source.</param>
            <returns>
            The observable sequence that at any point in time produces the elements of the most recent inner observable sequence that has been received.
            </returns>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="sources" /> is null.</exception>
        </member>
        <member name="M:DynamicData.ObservableListEx.StartWithEmpty``1(System.IObservable{DynamicData.IChangeSet{``0}})">
            <summary>
            Prepends an empty changeset to the source
            </summary>
        </member>
        <member name="T:DynamicData.RangeChange`1">
            <summary>
            Multiple change container
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:DynamicData.RangeChange`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.RangeChange`1"/> class.
            </summary>
            <param name="items">The items.</param>
            <param name="index">The index.</param>
        </member>
        <member name="M:DynamicData.RangeChange`1.Add(`0)">
            <summary>
            Adds the specified item to the range.
            </summary>
            <param name="item">The item.</param>
        </member>
        <member name="M:DynamicData.RangeChange`1.Insert(System.Int32,`0)">
            <summary>
            Inserts the  item in the range at the specified index.
            </summary>
            <param name="index">The index.</param>
            <param name="item">The item.</param>
        </member>
        <member name="M:DynamicData.RangeChange`1.SetStartingIndex(System.Int32)">
            <summary>
            Sets the index of the starting index of the range
            </summary>
            <param name="index">The index.</param>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="P:DynamicData.RangeChange`1.Count">
            <summary>
                The total update count
            </summary>
        </member>
        <member name="P:DynamicData.RangeChange`1.Index">
            <summary>
            Gets the index initial index i.e. for the initial starting point of the range insertion
            </summary>
            <value>
            The index.
            </value>
        </member>
        <member name="M:DynamicData.RangeChange`1.GetEnumerator">
            <summary>
            Gets the enumerator.
            </summary>
            <returns></returns>
        </member>
        <member name="M:DynamicData.RangeChange`1.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="T:DynamicData.SortException">
            <summary>
            Thrown when an exception occurs within the sort operators
            </summary>
        </member>
        <member name="M:DynamicData.SortException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.SortException"/> class.
            </summary>
            <param name="message">The message that describes the error.</param>
        </member>
        <member name="T:DynamicData.SortOptions">
            <summary>
            Options for sorting
            </summary>
        </member>
        <member name="F:DynamicData.SortOptions.None">
            <summary>
            No sort options are specified. 
            </summary>
        </member>
        <member name="F:DynamicData.SortOptions.UseBinarySearch">
            <summary>
            Use binary search to locate item index.
            </summary>
        </member>
        <member name="T:DynamicData.SourceList`1">
            <summary>
            An editable observable list
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
        </member>
        <member name="M:DynamicData.SourceList`1.#ctor(System.IObservable{DynamicData.IChangeSet{`0}})">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.SourceList`1"/> class.
            </summary>
            <param name="source">The source.</param>
        </member>
        <member name="M:DynamicData.SourceList`1.Edit(System.Action{DynamicData.IExtendedList{`0}})">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.SourceList`1.Items">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.SourceList`1.Count">
            <inheritdoc />
        </member>
        <member name="P:DynamicData.SourceList`1.CountChanged">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.SourceList`1.Connect(System.Func{`0,System.Boolean})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.SourceList`1.Preview(System.Func{`0,System.Boolean})">
            <inheritdoc />
        </member>
        <member name="M:DynamicData.SourceList`1.Dispose">
            <inheritdoc />
        </member>
        <member name="T:DynamicData.SourceListEditConvenienceEx">
            <summary>
            Convenience methods for a source list
            </summary>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.EditDiff``1(DynamicData.ISourceList{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Loads the list with the specified items in an optimised manner i.e. calculates the differences between the old and new items
             in the list and amends only the differences
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="source">The source.</param>
            <param name="allItems"></param>
            <param name="equalityComparer">The equality comparer used to determine whether an item has changed</param>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.Clear``1(DynamicData.ISourceList{``0})">
            <summary>
            Clears all items from the specified source list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.Add``1(DynamicData.ISourceList{``0},``0)">
            <summary>
            Adds the specified item to the source list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.Insert``1(DynamicData.ISourceList{``0},System.Int32,``0)">
            <summary>
            Adds the specified item to the source list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
            <param name="index">The index.</param>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.AddRange``1(DynamicData.ISourceList{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Adds the specified items to the source list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.InsertRange``1(DynamicData.ISourceList{``0},System.Collections.Generic.IEnumerable{``0},System.Int32)">
            <summary>
            Inserts the elements of a collection into the <see cref="T:System.Collections.Generic.List`1" /> at the specified index.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="items">The items.</param>
            <param name="index">The zero-based index at which the new elements should be inserted.</param>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.Remove``1(DynamicData.ISourceList{``0},``0)">
            <summary>
            Removes the specified item from the source list
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="item">The item.</param>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.RemoveMany``1(DynamicData.ISourceList{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Removes the items from source in an optimised manner
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="itemsToRemove">The items to remove.</param>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.Move``1(DynamicData.ISourceList{``0},System.Int32,System.Int32)">
            <summary>
            Moves an item from the original to the destination index
            </summary>
             <param name="source">The source.</param>
            <param name="original">The original.</param>
            <param name="destination">The destination.</param>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.RemoveRange``1(DynamicData.ISourceList{``0},System.Int32,System.Int32)">
            <summary>
            Removes a range of elements from the <see cref="T:System.Collections.Generic.List`1" />.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="index">The zero-based starting index of the range of elements to remove.</param>
            <param name="count">The number of elements to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is less than 0.-or-<paramref name="count" /> is less than 0.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="index" /> and <paramref name="count" /> do not denote a valid range of elements in the <see cref="T:System.Collections.Generic.List`1" />.</exception>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.RemoveAt``1(DynamicData.ISourceList{``0},System.Int32)">
            <summary>
            Removes the element at the specified index
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="index">The index.</param>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.Replace``1(DynamicData.ISourceList{``0},``0,``0)">
            <summary>
            Replaces the specified original with the destination object
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="original">The original.</param>
            <param name="destination">The destination.</param>
        </member>
        <member name="M:DynamicData.SourceListEditConvenienceEx.ReplaceAt``1(DynamicData.ISourceList{``0},System.Int32,``0)">
            <summary>
            Replaces the item at the specified index with the new item
            </summary>
            <typeparam name="T"></typeparam>
            <param name="source">The source.</param>
            <param name="index">The index.</param>
            <param name="item">The item.</param>
        </member>
        <member name="T:DynamicData.SourceListEx">
            <summary>
            Source list extensions
            </summary>
        </member>
        <member name="M:DynamicData.SourceListEx.Cast``2(DynamicData.ISourceList{``0},System.Func{``0,``1})">
            <summary>
            Connects to the list, and converts the changes to another form
            
            Alas, I had to add the converter due to type inference issues 
            </summary>
            <typeparam name="TSource">The type of the object.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="conversionFactory">The conversion factory.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">
            </exception>
        </member>
        <member name="T:DynamicData.UnspecifiedIndexException">
            <summary>
            Thrown when an index is expected but not specified
            </summary>
        </member>
        <member name="M:DynamicData.UnspecifiedIndexException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.UnspecifiedIndexException"/> class.
            </summary>
            <param name="message">The message that describes the error.</param>
        </member>
        <member name="M:DynamicData.UnspecifiedIndexException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.UnspecifiedIndexException"/> class.
            </summary>
        </member>
        <member name="M:DynamicData.UnspecifiedIndexException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:DynamicData.UnspecifiedIndexException"/> class.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
        </member>
        <member name="T:DynamicData.ObservableChangeSet">
            <summary>
            Creation methods for observable change sets
            </summary>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``2(System.Func{DynamicData.ISourceCache{``0,``1},System.Action},System.Func{``0,``1})">
            <summary>
            Creates an observable cache from a specified Subscribe method implementation. 
            </summary>
            <typeparam name="TObject">The type of the elements contained in the observable cache</typeparam>
            <typeparam name="TKey">The type of the specified key</typeparam>
            <param name="subscribe">  Implementation of the resulting observable cache's Subscribe method. </param>
            <param name="keySelector">The key selector.</param>
            <returns>The observable cache with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``2(System.Func{DynamicData.ISourceCache{``0,``1},System.IDisposable},System.Func{``0,``1})">
            <summary>
            Creates an observable cache from a specified Subscribe method implementation. 
            </summary>
            <typeparam name="TObject">The type of the elements contained in the observable cache</typeparam>
            <typeparam name="TKey">The type of the specified key</typeparam>
            <param name="subscribe">  Implementation of the resulting observable cache's Subscribe method. </param>
            <param name="keySelector">The key selector.</param>
            <returns>The observable cache with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``2(System.Func{DynamicData.ISourceCache{``0,``1},System.Threading.Tasks.Task{System.IDisposable}},System.Func{``0,``1})">
            <summary>
            Creates an observable cache from a specified Subscribe method implementation. 
            </summary>
            <typeparam name="TObject">The type of the elements contained in the observable cache</typeparam>
            <typeparam name="TKey">The type of the specified key</typeparam>
            <param name="subscribe">  Implementation of the resulting observable cache's Subscribe method. </param>
            <param name="keySelector">The key selector.</param>
            <returns>The observable cache with the specified implementation for the Subscribe method.</returns>                                                                                                      
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``2(System.Func{DynamicData.ISourceCache{``0,``1},System.Threading.CancellationToken,System.Threading.Tasks.Task{System.IDisposable}},System.Func{``0,``1})">
            <summary>
            Creates an observable cache from a specified cancellable asynchronous Subscribe method. The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. 
            </summary>
            <typeparam name="TObject">The type of the elements contained in the observable cache</typeparam>
            <typeparam name="TKey">The type of the specified key</typeparam>
            <param name="subscribe">  Implementation of the resulting observable cache's Subscribe method. </param>
            <param name="keySelector">The key selector.</param>
            <returns>The observable cache with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``2(System.Func{DynamicData.ISourceCache{``0,``1},System.Threading.Tasks.Task{System.Action}},System.Func{``0,``1})">
            <summary>
            Creates an observable cache from a specified cancellable asynchronous Subscribe method. The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. 
            </summary>
            <typeparam name="TObject">The type of the elements contained in the observable cache</typeparam>
            <typeparam name="TKey">The type of the specified key</typeparam>
            <param name="subscribe">  Implementation of the resulting observable cache's Subscribe method. </param>
            <param name="keySelector">The key selector.</param>
            <returns>The observable cache with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``2(System.Func{DynamicData.ISourceCache{``0,``1},System.Threading.CancellationToken,System.Threading.Tasks.Task{System.Action}},System.Func{``0,``1})">
            <summary>
            Creates an observable cache from a specified cancellable asynchronous Subscribe method. The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. 
            </summary>
            <typeparam name="TObject">The type of the elements contained in the observable cache</typeparam>
            <typeparam name="TKey">The type of the specified key</typeparam>
            <param name="subscribe">  Implementation of the resulting observable cache's Subscribe method. </param>
            <param name="keySelector">The key selector.</param>
            <returns>The observable cache with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``2(System.Func{DynamicData.ISourceCache{``0,``1},System.Threading.Tasks.Task},System.Func{``0,``1})">
            <summary>
            Creates an observable cache from a specified asynchronous Subscribe method. 
            </summary>
            <typeparam name="TObject">The type of the elements contained in the observable cache</typeparam>
            <typeparam name="TKey">The type of the specified key</typeparam>
            <param name="subscribe">  Implementation of the resulting observable cache's Subscribe method. </param>
            <param name="keySelector">The key selector.</param>
            <returns>The observable cache with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``2(System.Func{DynamicData.ISourceCache{``0,``1},System.Threading.CancellationToken,System.Threading.Tasks.Task},System.Func{``0,``1})">
            <summary>
            Creates an observable cache from a specified cancellable asynchronous Subscribe method. The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation.
            </summary>
            <typeparam name="TObject">The type of the elements contained in the observable cache</typeparam>
            <typeparam name="TKey">The type of the specified key</typeparam>
            <param name="subscribe">  Implementation of the resulting observable cache's Subscribe method. </param>
            <param name="keySelector">The key selector.</param>
            <returns>The observable cache with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``1(System.Func{DynamicData.ISourceList{``0},System.Action})">
            <summary>
            Creates an observable list from a specified Subscribe method implementation. 
            </summary>
            <typeparam name="T">The type of the elements contained in the observable list</typeparam>
            <param name="subscribe">  Implementation of the resulting observable list's Subscribe method. </param>
            <returns>The observable list with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``1(System.Func{DynamicData.ISourceList{``0},System.IDisposable})">
            <summary>
            Creates an observable list from a specified Subscribe method implementation. 
            </summary>
            <typeparam name="T">The type of the elements contained in the observable list</typeparam>
            <param name="subscribe">  Implementation of the resulting observable list's Subscribe method. </param>
            <returns>The observable list with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``1(System.Func{DynamicData.ISourceList{``0},System.Threading.Tasks.Task{System.IDisposable}})">
            <summary>
            Creates an observable list from a specified Subscribe method implementation. 
            </summary>
            <typeparam name="T">The type of the elements contained in the observable list</typeparam>
            <param name="subscribe">  Implementation of the resulting observable list's Subscribe method. </param>
            <returns>The observable list with the specified implementation for the Subscribe method.</returns>                                                                                                        
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``1(System.Func{DynamicData.ISourceList{``0},System.Threading.CancellationToken,System.Threading.Tasks.Task{System.IDisposable}})">
            <summary>
            Creates an observable list from a specified cancellable asynchronous Subscribe method. The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. 
            </summary>
            <typeparam name="T">The type of the elements contained in the observable list</typeparam>
            <param name="subscribe">  Implementation of the resulting observable list's Subscribe method. </param>
            <returns>The observable list with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``1(System.Func{DynamicData.ISourceList{``0},System.Threading.Tasks.Task{System.Action}})">
            <summary>
            Creates an observable list from a specified cancellable asynchronous Subscribe method. The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. 
            </summary>
            <typeparam name="T">The type of the elements contained in the observable list</typeparam>
            <param name="subscribe">  Implementation of the resulting observable list's Subscribe method. </param>
            <returns>The observable list with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``1(System.Func{DynamicData.ISourceList{``0},System.Threading.CancellationToken,System.Threading.Tasks.Task{System.Action}})">
            <summary>
            Creates an observable list from a specified cancellable asynchronous Subscribe method. The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation. 
            </summary>
            <typeparam name="T">The type of the elements contained in the observable list</typeparam>
            <param name="subscribe">  Implementation of the resulting observable list's Subscribe method. </param>
            <returns>The observable list with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``1(System.Func{DynamicData.ISourceList{``0},System.Threading.Tasks.Task})">
            <summary>
            Creates an observable list from a specified asynchronous Subscribe method. 
            </summary>
            <typeparam name="T">The type of the elements contained in the observable list</typeparam>
            <param name="subscribe">  Implementation of the resulting observable list's Subscribe method. </param>
            <returns>The observable list with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="M:DynamicData.ObservableChangeSet.Create``1(System.Func{DynamicData.ISourceList{``0},System.Threading.CancellationToken,System.Threading.Tasks.Task})">
            <summary>
            Creates an observable list from a specified cancellable asynchronous Subscribe method. The CancellationToken passed to the asynchronous Subscribe method is tied to the returned disposable subscription, allowing best-effort cancellation.
            </summary>
            <typeparam name="T">The type of the elements contained in the observable list</typeparam>
            <param name="subscribe">  Implementation of the resulting observable list's Subscribe method. </param>
            <returns>The observable list with the specified implementation for the Subscribe method.</returns>
        </member>
        <member name="T:DynamicData.ObsoleteEx">
            <summary>
            Obsolete methods: Kept in system to prevent breaking changes for now
            </summary>
        </member>
        <member name="T:DynamicData.PLinq.ParallelEx">
            <summary>
            Parallelisation extensions for DynamicData
             </summary>
        </member>
        <member name="T:DynamicData.PLinq.ParallelisationOptions">
            <summary>
            Options to specify parallelisation of stream operations.  Only applicable for .Net4 and .Net45 builds 
            </summary>
        </member>
        <member name="F:DynamicData.PLinq.ParallelisationOptions.Default">
            <summary>
            The default parallelisation options
            </summary>
        </member>
        <member name="F:DynamicData.PLinq.ParallelisationOptions.None">
            <summary>
            Value to be used when no parallelisation should take place
            </summary>
        </member>
        <member name="M:DynamicData.PLinq.ParallelisationOptions.#ctor(DynamicData.PLinq.ParallelType,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
        </member>
        <member name="P:DynamicData.PLinq.ParallelisationOptions.Type">
            <summary>
            Gets the type.
            </summary>
        </member>
        <member name="P:DynamicData.PLinq.ParallelisationOptions.Threshold">
            <summary>
            Gets the threshold.
            </summary>
        </member>
        <member name="P:DynamicData.PLinq.ParallelisationOptions.MaxDegreeOfParallisation">
            <summary>
            Gets the maximum degree of parallisation.
            </summary>
        </member>
        <member name="T:DynamicData.PLinq.ParallelOperators">
            <summary>
            PLinq operators or Net4 and Net45 only
            </summary>
        </member>
        <member name="M:DynamicData.PLinq.ParallelOperators.SubscribeMany``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.IDisposable},DynamicData.PLinq.ParallelisationOptions)">
            <summary>
            Subscribes to each item when it is added to the stream and unsubcribes when it is removed.  All items will be unsubscribed when the stream is disposed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="subscriptionFactory">The subsription function</param>
            <param name="parallelisationOptions">The parallelisation options.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            subscriptionFactory</exception>
            <remarks>
            Subscribes to each item when it is added or updates and unsubcribes when it is removed
            </remarks>
        </member>
        <member name="M:DynamicData.PLinq.ParallelOperators.SubscribeMany``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,``1,System.IDisposable},DynamicData.PLinq.ParallelisationOptions)">
            <summary>
            Subscribes to each item when it is added to the stream and unsubcribes when it is removed.  All items will be unsubscribed when the stream is disposed
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="subscriptionFactory">The subsription function</param>
            <param name="parallelisationOptions">The parallelisation options.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            subscriptionFactory</exception>
            <remarks>
            Subscribes to each item when it is added or updates and unsubcribes when it is removed
            </remarks>
        </member>
        <member name="M:DynamicData.PLinq.ParallelOperators.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},DynamicData.PLinq.ParallelisationOptions)">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="parallelisationOptions">The parallelisation options to be used on the transforms</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.PLinq.ParallelOperators.Transform``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},DynamicData.PLinq.ParallelisationOptions)">
            <summary>
            Projects each update item to a new form using the specified transform function
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="parallelisationOptions">The parallelisation options.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.PLinq.ParallelOperators.TransformSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},DynamicData.PLinq.ParallelisationOptions)">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.
             If not specified the stream will terminate as per rx convention.
            </param>
            <param name="parallelisationOptions">The parallelisation options.</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.PLinq.ParallelOperators.TransformSafe``3(System.IObservable{DynamicData.IChangeSet{``1,``2}},System.Func{``1,``2,``0},System.Action{DynamicData.Kernel.Error{``1,``2}},DynamicData.PLinq.ParallelisationOptions)">
            <summary>
            Projects each update item to a new form using the specified transform function,
            providing an error handling action to safely handle transform errors without killing the stream.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="transformFactory">The transform factory.</param>
            <param name="errorHandler">Provides the option to safely handle errors without killing the stream.
             If not specified the stream will terminate as per rx convention.
            </param>
            <param name="parallelisationOptions">The parallelisation options to be used on the transforms</param>
            <returns>
            A transformed update collection
            </returns>
            <exception cref="T:System.ArgumentNullException">source
            or
            transformFactory</exception>
        </member>
        <member name="M:DynamicData.PLinq.ParallelOperators.Filter``2(System.IObservable{DynamicData.IChangeSet{``0,``1}},System.Func{``0,System.Boolean},DynamicData.PLinq.ParallelisationOptions)">
            <summary>
            Filters the stream using the specified predicate
            </summary>
            <typeparam name="TObject">The type of the object.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="filter">The filter.</param>
            <param name="parallelisationOptions">The parallelisation options.</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">source</exception>
        </member>
        <member name="T:DynamicData.PLinq.ParallelType">
            <summary>
            The type of parallisation
            </summary>
        </member>
        <member name="F:DynamicData.PLinq.ParallelType.None">
            <summary>
            No parallelisation will take place
            </summary>
        </member>
        <member name="F:DynamicData.PLinq.ParallelType.Parallelise">
            <summary>
            Parallelisation will take place without preserving the enumerable order
            </summary>
        </member>
        <member name="F:DynamicData.PLinq.ParallelType.Ordered">
            <summary>
            Parallelisation will take place whilst preserving the enumerable order
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.CanBeNullAttribute">
            <summary>
            Indicates that the value of the marked element could be <c>null</c> sometimes,
            so the check for <c>null</c> is necessary before its usage
            </summary>
            <example><code>
            [CanBeNull] public object Test() { return null; }
            public void UseTest() {
              var p = Test();
              var s = p.ToString(); // Warning: Possible 'System.NullReferenceException'
            }
            </code></example>
        </member>
        <member name="T:DynamicData.Annotations.NotNullAttribute">
            <summary>
            Indicates that the value of the marked element could never be <c>null</c>
            </summary>
            <example><code>
            [NotNull] public object Foo() {
              return null; // Warning: Possible 'null' assignment
            }
            </code></example>
        </member>
        <member name="T:DynamicData.Annotations.ItemNotNullAttribute">
            <summary>
            Indicates that collection or enumerable value does not contain null elements
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.ItemCanBeNullAttribute">
            <summary>
            Indicates that collection or enumerable value can contain null elements
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.StringFormatMethodAttribute">
            <summary>
            Indicates that the marked method builds string by format pattern and (optional) arguments.
            Parameter, which contains format string, should be given in constructor. The format string
            should be in <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/>-like form
            </summary>
            <example><code>
            [StringFormatMethod("message")]
            public void ShowError(string message, params object[] args) { /* do something */ }
            public void Foo() {
              ShowError("Failed: {0}"); // Warning: Non-existing argument in format string
            }
            </code></example>
        </member>
        <member name="M:DynamicData.Annotations.StringFormatMethodAttribute.#ctor(System.String)">
            <param name="formatParameterName">
            Specifies which parameter of an annotated method should be treated as format-string
            </param>
        </member>
        <member name="T:DynamicData.Annotations.ValueProviderAttribute">
            <summary>
            For a parameter that is expected to be one of the limited set of values.
            Specify fields of which type should be used as values for this parameter.
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.InvokerParameterNameAttribute">
            <summary>
            Indicates that the function argument should be string literal and match one
            of the parameters of the caller function. For example, ReSharper annotates
            the parameter of <see cref="T:System.ArgumentNullException"/>
            </summary>
            <example><code>
            public void Foo(string param) {
              if (param == null)
                throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol
            }
            </code></example>
        </member>
        <member name="T:DynamicData.Annotations.NotifyPropertyChangedInvocatorAttribute">
             <summary>
             Indicates that the method is contained in a type that implements
             <c>System.ComponentModel.INotifyPropertyChanged</c> interface and this method
             is used to notify that some property value changed
             </summary>
             <remarks>
             The method should be non-static and conform to one of the supported signatures:
             <list>
             <item><c>NotifyChanged(string)</c></item>
             <item><c>NotifyChanged(params string[])</c></item>
             <item><c>NotifyChanged{T}(Expression{Func{T}})</c></item>
             <item><c>NotifyChanged{T,U}(Expression{Func{T,U}})</c></item>
             <item><c>SetProperty{T}(ref T, T, string)</c></item>
             </list>
             </remarks>
             <example><code>
             public class Foo : INotifyPropertyChanged {
               public event PropertyChangedEventHandler PropertyChanged;
               [NotifyPropertyChangedInvocator]
               protected virtual void NotifyChanged(string propertyName) { ... }
            
               private string _name;
               public string Name {
                 get { return _name; }
                 set { _name = value; NotifyChanged("LastName"); /* Warning */ }
               }
             }
             </code>
             Examples of generated notifications:
             <list>
             <item><c>NotifyChanged("Property")</c></item>
             <item><c>NotifyChanged(() =&gt; Property)</c></item>
             <item><c>NotifyChanged((VM x) =&gt; x.Property)</c></item>
             <item><c>SetProperty(ref myField, value, "Property")</c></item>
             </list>
             </example>
        </member>
        <member name="T:DynamicData.Annotations.ContractAnnotationAttribute">
            <summary>
            Describes dependency between method input and output
            </summary>
            <syntax>
            <p>Function Definition Table syntax:</p>
            <list>
            <item>FDT      ::= FDTRow [;FDTRow]*</item>
            <item>FDTRow   ::= Input =&gt; Output | Output &lt;= Input</item>
            <item>Input    ::= ParameterName: Value [, Input]*</item>
            <item>Output   ::= [ParameterName: Value]* {halt|stop|void|nothing|Value}</item>
            <item>Value    ::= true | false | null | notnull | canbenull</item>
            </list>
            If method has single input parameter, it's name could be omitted.<br/>
            Using <c>halt</c> (or <c>void</c>/<c>nothing</c>, which is the same)
            for method output means that the methods doesn't return normally.<br/>
            <c>canbenull</c> annotation is only applicable for output parameters.<br/>
            You can use multiple <c>[ContractAnnotation]</c> for each FDT row,
            or use single attribute with rows separated by semicolon.<br/>
            </syntax>
            <examples><list>
            <item><code>
            [ContractAnnotation("=> halt")]
            public void TerminationMethod()
            </code></item>
            <item><code>
            [ContractAnnotation("halt &lt;= condition: false")]
            public void Assert(bool condition, string text) // regular assertion method
            </code></item>
            <item><code>
            [ContractAnnotation("s:null => true")]
            public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty()
            </code></item>
            <item><code>
            // A method that returns null if the parameter is null,
            // and not null if the parameter is not null
            [ContractAnnotation("null => null; notnull => notnull")]
            public object Transform(object data) 
            </code></item>
            <item><code>
            [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")]
            public bool TryParse(string s, out Person result)
            </code></item>
            </list></examples>
        </member>
        <member name="T:DynamicData.Annotations.LocalizationRequiredAttribute">
            <summary>
            Indicates that marked element should be localized or not
            </summary>
            <example><code>
            [LocalizationRequiredAttribute(true)]
            public class Foo {
              private string str = "my string"; // Warning: Localizable string
            }
            </code></example>
        </member>
        <member name="T:DynamicData.Annotations.CannotApplyEqualityOperatorAttribute">
            <summary>
            Indicates that the value of the marked type (or its derivatives)
            cannot be compared using '==' or '!=' operators and <c>Equals()</c>
            should be used instead. However, using '==' or '!=' for comparison
            with <c>null</c> is always permitted.
            </summary>
            <example><code>
            [CannotApplyEqualityOperator]
            class NoEquality { }
            class UsesNoEquality {
              public void Test() {
                var ca1 = new NoEquality();
                var ca2 = new NoEquality();
                if (ca1 != null) { // OK
                  bool condition = ca1 == ca2; // Warning
                }
              }
            }
            </code></example>
        </member>
        <member name="T:DynamicData.Annotations.BaseTypeRequiredAttribute">
            <summary>
            When applied to a target attribute, specifies a requirement for any type marked
            with the target attribute to implement or inherit specific type or types.
            </summary>
            <example><code>
            [BaseTypeRequired(typeof(IComponent)] // Specify requirement
            public class ComponentAttribute : Attribute { }
            [Component] // ComponentAttribute requires implementing IComponent interface
            public class MyComponent : IComponent { }
            </code></example>
        </member>
        <member name="T:DynamicData.Annotations.UsedImplicitlyAttribute">
            <summary>
            Indicates that the marked symbol is used implicitly
            (e.g. via reflection, in external library), so this symbol
            will not be marked as unused (as well as by other usage inspections)
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.MeansImplicitUseAttribute">
            <summary>
            Should be used on attributes and causes ReSharper
            to not mark symbols marked with such attributes as unused
            (as well as by other usage inspections)
            </summary>
        </member>
        <member name="F:DynamicData.Annotations.ImplicitUseKindFlags.Access">
            <summary>Only entity marked with attribute considered used</summary>
        </member>
        <member name="F:DynamicData.Annotations.ImplicitUseKindFlags.Assign">
            <summary>Indicates implicit assignment to a member</summary>
        </member>
        <member name="F:DynamicData.Annotations.ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature">
            <summary>
            Indicates implicit instantiation of a type with fixed constructor signature.
            That means any unused constructor parameters won't be reported as such.
            </summary>
        </member>
        <member name="F:DynamicData.Annotations.ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature">
            <summary>Indicates implicit instantiation of a type</summary>
        </member>
        <member name="T:DynamicData.Annotations.ImplicitUseTargetFlags">
            <summary>
            Specify what is considered used implicitly when marked
            with <see cref="T:DynamicData.Annotations.MeansImplicitUseAttribute"/> or <see cref="T:DynamicData.Annotations.UsedImplicitlyAttribute"/>
            </summary>
        </member>
        <member name="F:DynamicData.Annotations.ImplicitUseTargetFlags.Members">
            <summary>Members of entity marked with attribute are considered used</summary>
        </member>
        <member name="F:DynamicData.Annotations.ImplicitUseTargetFlags.WithMembers">
            <summary>Entity marked with attribute and all its members considered used</summary>
        </member>
        <member name="T:DynamicData.Annotations.PublicAPIAttribute">
            <summary>
            This attribute is intended to mark publicly available API
            which should not be removed and so is treated as used
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.InstantHandleAttribute">
            <summary>
            Tells code analysis engine if the parameter is completely handled
            when the invoked method is on stack. If the parameter is a delegate,
            indicates that delegate is executed while the method is executed.
            If the parameter is an enumerable, indicates that it is enumerated
            while the method is executed
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.PureAttribute">
            <summary>
            Indicates that a method does not make any observable state changes.
            The same as <c>System.Diagnostics.Contracts.PureAttribute</c>
            </summary>
            <example><code>
            [Pure] private int Multiply(int x, int y) { return x * y; }
            public void Foo() {
              const int a = 2, b = 2;
              Multiply(a, b); // Waring: Return value of pure method is not used
            }
            </code></example>
        </member>
        <member name="T:DynamicData.Annotations.PathReferenceAttribute">
            <summary>
            Indicates that a parameter is a path to a file or a folder within a web project.
            Path can be relative or absolute, starting from web root (~)
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcActionAttribute">
            <summary>
            ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
            is an MVC action. If applied to a method, the MVC action name is calculated
            implicitly from the context. Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcAreaAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC area.
            Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcControllerAttribute">
            <summary>
            ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is
            an MVC controller. If applied to a method, the MVC controller name is calculated
            implicitly from the context. Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcMasterAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute
            for custom wrappers similar to <c>System.Web.Mvc.Controller.View(String, String)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcModelTypeAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute
            for custom wrappers similar to <c>System.Web.Mvc.Controller.View(String, Object)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcPartialViewAttribute">
            <summary>
            ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC
            partial view. If applied to a method, the MVC partial view name is calculated implicitly
            from the context. Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcSupressViewErrorAttribute">
            <summary>
            ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcDisplayTemplateAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC display template.
            Use this attribute for custom wrappers similar to 
            <c>System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcEditorTemplateAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template.
            Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcTemplateAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC template.
            Use this attribute for custom wrappers similar to
            <c>System.ComponentModel.DataAnnotations.UIHintAttribute(System.String)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcViewAttribute">
            <summary>
            ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
            is an MVC view. If applied to a method, the MVC view name is calculated implicitly
            from the context. Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Controller.View(Object)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AspMvcActionSelectorAttribute">
            <summary>
            ASP.NET MVC attribute. When applied to a parameter of an attribute,
            indicates that this parameter is an MVC action name
            </summary>
            <example><code>
            [ActionName("Foo")]
            public ActionResult Login(string returnUrl) {
              ViewBag.ReturnUrl = Url.Action("Foo"); // OK
              return RedirectToAction("Bar"); // Error: Cannot resolve action
            }
            </code></example>
        </member>
        <member name="T:DynamicData.Annotations.RazorSectionAttribute">
            <summary>
            Razor attribute. Indicates that a parameter or a method is a Razor section.
            Use this attribute for custom wrappers similar to 
            <c>System.Web.WebPages.WebPageBase.RenderSection(String)</c>
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.CollectionAccessAttribute">
            <summary>
            Indicates how method invocation affects content of the collection
            </summary>
        </member>
        <member name="F:DynamicData.Annotations.CollectionAccessType.None">
            <summary>Method does not use or modify content of the collection</summary>
        </member>
        <member name="F:DynamicData.Annotations.CollectionAccessType.Read">
            <summary>Method only reads content of the collection but does not modify it</summary>
        </member>
        <member name="F:DynamicData.Annotations.CollectionAccessType.ModifyExistingContent">
            <summary>Method can change content of the collection but does not add new elements</summary>
        </member>
        <member name="F:DynamicData.Annotations.CollectionAccessType.UpdatedContent">
            <summary>Method can add new elements to the collection</summary>
        </member>
        <member name="T:DynamicData.Annotations.AssertionMethodAttribute">
            <summary>
            Indicates that the marked method is assertion method, i.e. it halts control flow if
            one of the conditions is satisfied. To set the condition, mark one of the parameters with 
            <see cref="T:DynamicData.Annotations.AssertionConditionAttribute"/> attribute
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AssertionConditionAttribute">
            <summary>
            Indicates the condition parameter of the assertion method. The method itself should be
            marked by <see cref="T:DynamicData.Annotations.AssertionMethodAttribute"/> attribute. The mandatory argument of
            the attribute is the assertion type.
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.AssertionConditionType">
            <summary>
            Specifies assertion type. If the assertion method argument satisfies the condition,
            then the execution continues. Otherwise, execution is assumed to be halted
            </summary>
        </member>
        <member name="F:DynamicData.Annotations.AssertionConditionType.IS_TRUE">
            <summary>Marked parameter should be evaluated to true</summary>
        </member>
        <member name="F:DynamicData.Annotations.AssertionConditionType.IS_FALSE">
            <summary>Marked parameter should be evaluated to false</summary>
        </member>
        <member name="F:DynamicData.Annotations.AssertionConditionType.IS_NULL">
            <summary>Marked parameter should be evaluated to null value</summary>
        </member>
        <member name="F:DynamicData.Annotations.AssertionConditionType.IS_NOT_NULL">
            <summary>Marked parameter should be evaluated to not null value</summary>
        </member>
        <member name="T:DynamicData.Annotations.TerminatesProgramAttribute">
            <summary>
            Indicates that the marked method unconditionally terminates control flow execution.
            For example, it could unconditionally throw exception
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.LinqTunnelAttribute">
            <summary>
            Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select,
            .Where). This annotation allows inference of [InstantHandle] annotation for parameters
            of delegate type by analyzing LINQ method chains.
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.NoEnumerationAttribute">
            <summary>
            Indicates that IEnumerable, passed as parameter, is not enumerated.
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.RegexPatternAttribute">
            <summary>
            Indicates that parameter is regular expression pattern.
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.XamlItemsControlAttribute">
            <summary>
            XAML attribute. Indicates the type that has <c>ItemsSource</c> property and should be
            treated as <c>ItemsControl</c>-derived type, to enable inner  items <c>DataContext</c>
            type resolve.
            </summary>
        </member>
        <member name="T:DynamicData.Annotations.XamlItemBindingOfItemsControlAttribute">
            <summary>
            XAML attibute. Indicates the property of some <c>BindingBase</c>-derived type, that
            is used to bind some item of <c>ItemsControl</c>-derived type. This annotation will
            enable the <c>DataContext</c> type resolve for XAML bindings for such properties.
            </summary>
            <remarks>
            Property should have the tree ancestor of the <c>ItemsControl</c> type or
            marked with the <see cref="T:DynamicData.Annotations.XamlItemsControlAttribute"/> attribute.
            </remarks>
        </member>
        <member name="T:DynamicData.Annotations.NoReorder">
            <summary>
            Prevents the Member Reordering feature from tossing members of the marked class.
            </summary>
            <remarks>
            The attribute must be mentioned in your member reordering patterns.
            </remarks>
        </member>
    </members>
</doc>
