WPF DockPanel:无法选择它来添加子项

时间:2015-04-26 11:59:16

标签: c# wpf user-interface intellisense dockpanel

我创建了一些必须作为子项添加到DockPanel的文本框。我给了这个DockPanel一个名字然后当我尝试使用这个名字时,Intellisense没有给我任何结果。如何选择DockPanel然后添加其子项?

我想选择它并添加一些文本框作为其子项。例如:nameLocationPanel.Children.Add(new TextBox());

这是包含DockPanel的XAML代码的顶部。它已经有了一些文本框,但我想在我的C#代码中添加更多文本框。

        <ListBox ItemContainerStyle="{StaticResource lbStyle}" Name="searchList" BorderBrush="#FF898989" BorderThickness="2" MouseUp="searchList_MouseUp" MouseDoubleClick="searchList_MouseDoubleClick" Visibility="Visible">
            <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <DockPanel Name="nameLocationPanel">
                                <TextBlock FontSize="14" HorizontalAlignment="Left" Text="{Binding Path=FirstName}"/>
                                <TextBlock FontSize="14" HorizontalAlignment="Left" Text=" "/>
                                <TextBlock FontSize="14" HorizontalAlignment="Left" Text="{Binding Path=LastName}"/>
                                <TextBlock HorizontalAlignment="Right" Text="{Binding Path=Location}"/>
                            </DockPanel>

2 个答案:

答案 0 :(得分:0)

它在DataTemplate中,你不能按名称选择它,因为它在你的Window中不存在,它只是一个模板定义会重复,因此没有1个dockpanel但N,N是等于列表框中有多少项,并且可能有0个dockpanel。 你到底想要达到什么目的?你可能会向后退一步。

答案 1 :(得分:0)

您无法访问DockPanel,因为它是DataTemplate的一部分。它是为ListBox中的每个项生成的,因此无法访问它的单个实例。

要向DockPanel添加其他项目,必须通过XAML中的绑定或特殊UserControl之类的内容来执行此操作。但它始终取决于ListBoxItem