Я создаю приложение, в котором есть элемент TextBox внутри DataTemplate, в ListBox в WPF. Я хочу получить доступ к элементу TextBox по имени, чтобы отредактировать или прочитать значение непосредственно из кода C#, пожалуйста, помогите. В приложении WPF добавлено несколько текстовых полей, поэтому как я могу их отсортировать по индексу?Доступ к вложенному элементу управления XAML в C#
<ListBox x:Name="listBox" HorizontalAlignment="Left" Height="336" Margin="276,69,0,0" VerticalAlignment="Top" Width="242" SelectionChanged="listBox_SelectionChanged">
Grid.IsSharedSizeScope="True"
HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate x:Name="D_Template">
<Grid Margin="4" Width="222">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Key" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBox x:Name ="TextValue" Grid.Column="1" Text="{Binding Value}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Как вы можете видеть, ListBox имеет имя переменной «ListBox», то DataTemplate был назначен на «D_Template» и TextBox присваивается имя «TextValue». Любая помощь приветствуется, спасибо за ваше время. :)
Если вы хотите получить к нему доступ из Code Behind, атрибут x: Name должен работать нормально. – Fang
Спасибо за ваш ответ! <3 Я пробовал это, но безрезультатно. Попытка ссылаться на атрибут x: Name непосредственно на C# не показывает результатов в Visual Studio. Добавьте небольшой фрагмент кода, который вы хотите использовать для доступа к нему. – Connor
Нет, вам нужно предоставить хороший [mcve], показывающий, что именно вы пытаетесь сделать. Практически в каждом случае доступ к элементам пользовательского интерфейса напрямую - неправильная работа. Значение, к которому вам нужно получить доступ, должно быть привязано к некоторому объекту модели представления, который вы можете использовать для извлечения значения. В вашем примере это означает, что ваш «ListBox» отображает коллекцию объектов модели просмотра, привязанную к шаблону, где свойство (или свойства) модели представления привязано к свойству (свойствам) «TextBox», к которому вы хотите получить доступ , Просьба представить более четкий пример кода и точное описание того, что вы пытаетесь сделать. –