You need to tell the combobox which value to display since you have no "label" name/value in the existing collection it can default to.

labelField="";

Example (I bound the data in combo1...the second combo has it assigned in "init();"

<?xml version="1.0" encoding="utf-8"?>
<mx:Application creationComplete="init();" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="com.flexfanatic.flex3.skypestatus.*" width="200" height="400">
<mx:Script>
<![CDATA[
import mx.collections.*;
[Bindable]
public var test:ArrayCollection = new ArrayCollection([
{ Id:"one", Amount:2000 },
{ Id:"two", Amount:1000 },
{ Id:"three", Amount:200 } ]);


public var test2:ArrayCollection = new ArrayCollection([
{ label:"one", Amount:2000 },
{ label:"two", Amount:1000 },
{ label:"three", Amount:200 } ]);

private function init():void
{
comboName2.dataProvider=test2;
}
]]>
</mx:Script>

<mx:ComboBox labelField="Id" x="20" y="253" id="comboName" dataProvider="{test}"></mx:ComboBox>

<mx:ComboBox x="20" y="283" id="comboName2"></mx:ComboBox>


</mx:Application>