如何在c#后面的代码中访问datatemplate中的网格控件名称

问题描述 投票:0回答:1

如何访问Popup中的控件。 popup是可访问的,但为什么我不能访问popup.how中的datagrid我们可以访问DataTemplate中的所有子控件

 <DataGrid  ItemsSource="{Binding}" AutoGenerateColumns="False" Height="193" CanUserAddRows="False" 
 HorizontalAlignment="Left" Margin="48,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="560"
              CellEditEnding="dataGrid1_CellEditEnding" >
        <!--Resources Start-->
        <DataGrid.Resources>
            <Style TargetType="{x:Type DataGridCell}">
                <EventSetter Event="GotFocus" Handler="DataGridCell_GotFocus" />
            </Style>
        </DataGrid.Resources>
        <!--Resources End-->
        <DataGrid.Columns>
            <!--Ledger Head Start-->
            <DataGridTemplateColumn Header="Ledger Head" Width="200" >

                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding LedgerHead}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBox Text="{Binding LedgerHead}" Loaded="TextBox_Loaded"  KeyUp="TextBox_KeyUp" />
                            <Popup x:Name="popup1"  AllowsTransparency="True"  PopupAnimation="Slide" Width="500" Height="800"  PlacementTarget="{Binding ElementName=textPopUp}" >
                                <Grid>
                                    <DataGrid x:Name="datagrid2"></DataGrid>
                                </Grid>
                            </Popup>
                        </StackPanel>

                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
            </DataGridTemplateColumn>
c# wpf
1个回答
0
投票

不,我们无法使用其名称访问数据模板内的控件。但,

  1. 要将数据源分配给网格视图,您可以在加载的网格事件中按类型将发送方转换为gridview。
  2. 要获取网格的选定数据,您可以使用gridchanged的类型转换发送者到gridviewitem。
© www.soinside.com 2019 - 2024. All rights reserved.