从xaml代码创建对象并识别它们

时间:2019-01-08 12:49:33

标签: c# wpf xaml

我有一个窗口,其中有一个TabControl。每当我按下某个按钮时,都应该在下面添加一个Tabitem及其布局。

我是否必须将XAML代码转换为C#手册,还是有其他选择?同样,在创建了该Tabitem之后,我需要能够对其进行编辑,这意味着我需要对每个Tabitem进行一些引用并能够确定哪个是哪个。

<TabItem Header="Table 1">
                <DockPanel>
                    <Grid DockPanel.Dock="Top" Margin="5">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="2*"/>
                            <ColumnDefinition/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>

                        <DataGrid Grid.Column="0">
                            <DataGrid.Columns>
                                <DataGridTextColumn Header="Order number"/>
                                <DataGridTextColumn Header="Customer"/>
                                <DataGridTextColumn Header="Total Price"/>
                                <DataGridComboBoxColumn Header="Urgency"/>
                            </DataGrid.Columns>

                        </DataGrid>

                        <StackPanel Grid.Column="1">
                            <Label Content="Maximum Seats:"/>
                            <Label Content="Current connections:"/>
                        </StackPanel>

                        <DockPanel Grid.Column="2" LastChildFill="False" HorizontalAlignment="Right">
                            <Button Name="BtnEditTable" Content="Edit Table" DockPanel.Dock="Top" Click="BtnEditTable_Click"/>
                        </DockPanel>
                    </Grid>
                    <TabControl Margin="5,0,0,0">
                        <TabItem Header="Customer 1">
                            <StackPanel>
                                <Label Content="Connected:"/>
                                <DataGrid>
                                    <DataGrid.Columns>
                                        <DataGridTextColumn Header="Order number"/>
                                        <DataGridTextColumn Header="Name"/>
                                        <DataGridTextColumn Header="Price"/>
                                    </DataGrid.Columns>
                                </DataGrid>
                            </StackPanel>
                        </TabItem>
                    </TabControl>
                </DockPanel>
            </TabItem>

1 个答案:

答案 0 :(得分:0)

您可以在XAML中使用Name属性,然后在隐藏代码中访问该对象。例如

<Grid Name="myGrid"> ... </Grid>

后面的示例代码:

myGrid.Visibility = Visibility.Collapsed;