Я создаю динамический графический интерфейс для обучения. После нажатия кнопки «+» пользователь может добавить шаблон itemControl.Адрес динамически созданного контента в wpf C#
Какова наилучшая практика получения элемента по имени (в данном случае x: Name = "lblName", который должен быть доступен, но должен быть создан первым) динамически созданных элементов?
MainWindow.xaml:
<ItemsControl Name="icDynamicTableColumn">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Margin="0,0,0,5">
<StackPanel>
<TextBlock Text="{Binding Description}" Height="23" Width="auto" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5"/>
<TextBox x:Name="lblName" Text="{Binding Textfield}" Height="23" VerticalAlignment="Top" HorizontalAlignment="Stretch" Margin="5"/>
</StackPanel>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
MainWindow.xaml.cs:
public partial class MainWindow : Window
{
[...]
public ObservableCollection<DynamicTableColumn> items = new ObservableCollection<DynamicTableColumn>();
[...]
public MainWindow()
{
[...]
InitializeComponent();
icDynamicTableColumn.ItemsSource = items;
}
public class DynamicTableColumn
{
public string Description
{
get {
return _description;
}
set {
[...]
}
}
private string _description;
public string Textfield { get; set; }
}
}
Я не уверен, чего вы хотите достичь? Вы хотите получить Имя или Элемент, который имеет это имя? – LionAM
Очистить: обработать динамически созданный объект для доступа к методам. – SimpleMath
Существует несколько способов, однако все не так просто (поскольку ItemsControl не предоставляет метод для получения (визуального) контейнера для элемента). Что вы хотите достичь, если у вас есть TextBox? Было бы достаточно, чтобы вас уведомили, изменит ли пользователь текст? – LionAM