Как получить объект из ресурса в WPF?
Я хотел поступить по умному, но что-то зашел в тупик. У меня есть некоторый массив чисел, каждое из которых я бы хотел менять в диалоговом окне (но это не суть).
Ниже представлены ресурсы (точнее ресурс) проекта, это некоторый заготовленный элемент, который помещается в StackPanel в окне. Он содержит в себе метку и текстовое поле.
<Window.Resources>
<StackPanel Orientation="Horizontal" Margin="0,0,0,10" Height="22" x:Key="ListOutputElem" x:Shared="false">
<Grid Width="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="Выход 0" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" Padding="0,0,0,0"/>
<TextBox Grid.Column="1" VerticalContentAlignment="Center" />
</Grid>
</StackPanel>
</Window.Resources>
Чтобы заполнить StackPanel этими элементами, я в конструкторе получаю ресурс и размещаю его в нужном элементе столько раз сколько нужно. То есть у меня есть объект этого участка кода, который я могу размещать где угодно.
Но главное, мне нужно взять и связать текстовые поля и источниками данных. Конечно можно было использовать Binding в xaml, но тогда нужно как-то указать индекс, что наверняка можно, но хочется делаться это не в xaml.
Так вот, как я сказал, я получаю элемент StackPanel при помощи FindResource, но я не могу получить доступ к тем элементам которые внутри его. Задание имени текстовому полю и получение его при помощи FindName, почему-то не возвращают этот элемент.
Еще отмечу, что да я могу просто конструировать вот этот элемент в коде и как угодно задавать привязки, но хочется все же разметку оставить в xaml.