@santrajas: By putting the property name in the XAML, you set everything up beforehand. The actual binding doesn't take place until you set the itemssource/datacontext of the ComboBox in the code-behind.

While you can do it all in code, as you're finding out it's pretty complex and really not the way Silverlight was designed to be used. Is this a strict requirement?

<DataTemplate>
<TextBlock Text="{Binding MyTextPropertyName}" />
</DataTemplate>

Sub BindStuff()
myComboBox.ItemsSource = myDataSource
End Sub