在代码wpf中找不到代码生成的控件



我从C#在WPF中创建了控件,并在单击按钮时找到了该控件,但没有找到

public MainWindow()
{
InitializeComponent();
TextBox textBox = new TextBox();
textBox.Name = "childTextBox";
TextBoxes.Add(textBox);
StackPanelParent.Children.Add(textBox);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
var findTextBox = (TextBox)this.FindName("childTextBox");
//it's give null
}

XAML代码

<StackPanel Margin="152,103,191,56">
<Label Name="Loader" Visibility="Collapsed">Loader</Label>
<Button Content="Click Me" HorizontalAlignment="Left" Margin="342,199,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>-->
<StackPanel Name="StackPanelParent">
</StackPanel>
<Button Click="Button_Click">Check</Button>
</StackPanel>

当您动态创建组件时,FindName无法找到它们,除非您像这样首先注册它们:

public MainWindow()
{
InitializeComponent();
TextBox textBox = new TextBox();
textBox.Name = "childTextBox";

TextBoxes.Add(textBox);
StackPanelParent.Children.Add(textBox);

// register name
RegisterName(textBox.Name, textBox);
}

最新更新