У меня есть список, в котором есть несколько таблиц данных для его элементов. Табличка данных выбирается с помощью конвертера и интерпретирует коллекцию объектов ListBox.
Внутри конвертера я пытаюсь привязать свойство из текстового контекста данных (вне списка lisbox) к элементу управления TextBox таблицы данных.
ListBox:
<telerik:RadListBox
x:Name="listBox2"
ItemsSource="{Binding MyCollection, Mode=TwoWay}"
VerticalAlignment="Top" Height="400">
<telerik:RadListBox.ItemTemplate>
<DataTemplate>
<ContentControl Content="{Binding}"
ContentTemplate="{Binding Converter={StaticResource myTestConverter}, ConverterParameter={StaticResource myViewModel}}" />
</DataTemplate>
</telerik:RadListBox.ItemTemplate>
</telerik:RadListBox>
Шаблон данных:
<DataTemplate x:Key="TestResource1">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding propertyLabel}"
FontStyle="Italic" Width="120" />
<TextBox x:Name="valueField"
FontSize="12" Width="50"
FontWeight="Bold" />
</StackPanel>
</DataTemplate>
Внутри метода конвертации конвертера:
_dt = Application.Current.Resources["TestResource1"] as DataTemplate;
var context = _dt.LoadContent();
var ctrl = FindControlByType<TextBox>(context, "valueField");
Binding binding = new Binding("DataContext.Value1");
binding.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor) { AncestorType = typeof(MainPage) };
TextBox txtBox = ctrl as TextBox;
BindingOperations.SetBinding(txtBox, TextBox.TextProperty, binding);
Это не работает. Есть идеи, что я делаю не так?
Спасибо.