繁体   English   中英

在TabControl中动态生成的WPF选项卡-如何访问其控件?

[英]WPF Tabs dynamically generated in a TabControl - How to access to their control?

我想了解这是如何工作的:

<DockPanel>
    <Menu DockPanel.Dock="Top">
        <MenuItem Header="File">
            <MenuItem Header="Connect" Click="MenuItem_Click"/>
        </MenuItem>
    </Menu>
    <TabControl
    ItemsSource="{Binding Tabs}">
        <TabControl.ItemTemplate>
            <!-- this is the header template-->
            <DataTemplate>
                <TextBlock
                Text="{Binding Header}" />
            </DataTemplate>
        </TabControl.ItemTemplate>
        <TabControl.ContentTemplate>
            <!-- this is the body of the TabItem template-->
            <DataTemplate>
                <StackPanel>
                    <TextBlock
                Text="{Binding Content}" />
                    <TabControl Height="538" TabStripPlacement="Left">
                        <TabItem Header="Accueil" >
                            <Grid Margin="0,0,0,70">
                                <RichTextBox Margin="0,0,-5,-17" Width="1020"></RichTextBox>
                                <TextBox TextWrapping="Wrap" Text="TextBox" Margin="0,484,-5,-63"/>
                            </Grid>
                        </TabItem>
                        <TabItem Header="Packets">
                            <Grid>

                            </Grid>
                        </TabItem>
                        <TabItem Header="Map">
                            <Grid>

                            </Grid>
                        </TabItem>
                        <TabItem Header="Plugin">
                            <Grid>

                            </Grid>
                        </TabItem>
                    </TabControl>

                </StackPanel>
            </DataTemplate>
        </TabControl.ContentTemplate>
    </TabControl>
</DockPanel>

我正在动态生成选项卡。 但是我想做的是在后面的代码中访问每个选项卡的内容。 例如,我想访问后面代码中第二个选项卡的RichTextBox。 我尝试添加属性名称,但是不起作用(即使它起作用了,如果第一个选项卡的RichTextBox和第二个选项卡的RichTextBox具有相同的名称并且以相同的方式生成,那么如何可以做到两者之间的区别) 。

然后我的问题是,当动态生成TabItem时如何访问该控件。 以传统的方式命名,因为它的名字是,但在这里我们不能。

我不知道我是否清楚,请随时询问更多细节。

  1. 通过在XAML中添加:x:Name =“ xxYourxxCustomxxTabxName”为控件添加名称
  2. 等待在您的视图代码内部加载如下所示的内容:

    this.Loaded + =(source,arg)=> {var test =(FrameworkElement)this.xxxYOURxxxTABxName.Items [0]};

从那里,应该能够使用其Items属性访问选项卡控件的项目

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM