It's possible to specify multiple binding for the same control, but in this case it won't work as expected.
Problem is that DataBinder has no way of knowing when to call DataBind method on your dropdown, so it never calls it directly. You can handle OnDataBound event and call it manually from there, but that seems to reset selected value.
What worked best for me is to use Spring data binding for selected value and to use standard .Net data binding for the items. That was actually the reason I added OnInitializeDataModel and OnInitializeControls methods to the page and user control lifecycle.
So, in order to do what you want you would load your list of business objects in OnInitializeDataModel method and bind it to a dropdown in OnInitializeControls:
Code:
protected override void OnInitializeControls(object sender, EventArgs e)
{
if (!IsPostback)
{
myDropdown.DataSource = myListOfBusinessObjects;
myDropdown.DataTextField = "nameOfTheBOPropertyToDisplay";
myDropdown.DataValueField = "nameOfTheBOPropertyToReturnWhenSelected";
myDropdown.DataBind();
}
}
Hope this helps,
Aleks