Это должно работать просто отлично. Вы пытались упростить свой сценарий? Вполне возможно, что DataContexts перепутаны между пользовательскими элементами управления и т. Д.
Простая страница со следующим элементом управления
И следующий код работает, как и ожидалось.
public MainPage()
{
InitializeComponent();
DataContext = this;
Binding binding = new Binding("Fruits[2]");
BindingOperations.SetBinding(txtTest, TextBox.TextProperty, binding);
}