static void Main( string[] args )
{
    List<string> items = new List<string>();
    items.Add( "item 01" );
    items.Add( "item 02" );
    items.Add( "item 03" );
    items.Add( "item 04" );
    items.Add( "item 05" );
    ReadOnlyCollection<string> readOnlyItems = new ReadOnlyCollection<string>( items );
    Console.WriteLine( "readOnlyItems.Count : " + readOnlyItems.Count ); /* readOnlyItems.Count : 5 */
    items.Add( "item 06" );
    items.Add( "item 07" );
    items.Add( "item 08" );
    items.Add( "item 09" );
    items.Add( "item 10" );
    Console.WriteLine( "readOnlyItems.Count : " + readOnlyItems.Count ); /* readOnlyItems.Count : 10 */
}

ItemsとItemsSourceの関係に似てると思った。