Hallo,
so fügst du in die ListBox nur genau einen Wert hinzu (nämlich die Liste 'liDatenfeld' selbst).
Laß einfach das 
new object[] {  } weg und verwende stattdessen die 
ToArray()-Methode, also
		                     
             C#-Quelltext
                        C#-Quelltext                    
           	 										| 1:
 | lbDatenfeld.Items.AddRange(liDatenfeld.ToArray());					 | 
		
	  
Edit: da dies nur für Referenztypen funktioniert (also nicht für Wertetypen wie 
int mußt du in deinem Fall noch 
Cast<object>() zusätzlich verwenden:
		                     
             C#-Quelltext
                        C#-Quelltext                    
           	 										| 1:
 | bDatenfeld.Items.AddRange(liDatenfeld.Cast<object>().ToArray());					 | 
		
	  
(Stichwort: Boxing/Unboxing)
Weitere Möglichkeiten sind auch unter 
Convert List<T> to object[] zu finden.
Alternativ kannst du die manuelle Schleife auch mittels 
ListBox.BeginUpdate() und 
ListBox.EndUpdate() umrahmen (damit nicht jede Änderung zu einer Aktualisierung führt).
P.S. Verwendest du wirklich Silverlight (denn dort scheint es kein AddRange zu geben: 
ItemCollection)?