cách truy cập điều khiển trong DataGrid.RowDetailsTemplate trong thời gian chạy

lập trình


cách truy cập txtName trong DataGrid.RowDetailsTemplate trong thời gian chạy:

mã của tôi :

C#
<DataGrid ColumnWidth="*" Name="dgUsers" Grid.ColumnSpan="5" Grid.Row="4" Margin="10,0,10,4"
                                  AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False"
                                  IsReadOnly="True"
                                  SelectionMode="Single" SelectionUnit="FullRow" HeadersVisibility="Column">
                            <DataGrid.Columns>
                                <DataGridTextColumn x:Name="Name" Header="Name"  Binding="{Binding Path=Name}"/>
                                <DataGridTextColumn x:Name="Family" Header="Family"  Binding="{Binding Path=Family}"/>
                            </DataGrid.Columns>
                            <DataGrid.RowDetailsTemplate>
                                <DataTemplate>
                                    <Grid Margin="0,10,0,10" >
                                        <TextBox Name="txtName" Margin="0,2,0,2" Text="{Binding Path=Name}" />
                                        <TextBox Name="txtFamily" Margin="0,2,0,2" Text="{Binding Path=Family}" />
                                        <TextBox Name="txtUserName" Margin="0,2,0,2" Text="{Binding Path=UserName}"  />
                                            <Button Background="#FF7F9D0E" Height="60" Name="btnDelete" TabIndex="8" Width="60" Margin="30,0,30,0" Click="BtnDeleteClick">
                                    </Grid>

                                </DataTemplate>
                            </DataGrid.RowDetailsTemplate>
                        </DataGrid>

tôi muốn truy cập vào txtName trong sự kiện BtnDeleteClick.

Giải pháp 2

Mong muốn HàngChi tiếtMẫu nội dung có sẵn ngay sau đó hàng được mở rộng.
Cho đến sự kiện này (xem Đang tảiHàngChi tiết) nội dung là null và hãy thử tìm nó bằng DataGridDetailsPresenter.ContentTemplate dẫn đến một ngoại lệ:
System.InvalidOperationException

HResult=0x80131509
Message=Operation Chỉ hợp lệ cho các thành phần sử dụng mẫu đó.
Nguồn=Khung trình bày
StackTrace:
tại System.Windows.FrameworkTemplate.FindName(Tên chuỗi, FrameworkElement templatedParent)
tại ProductionOverviewModule.View.ProductionOrdersGrid.GetRowDetailTemplateGrids() trong fileName.cs:line 86

để biết thêm về xem liên kết https://stackoverflow.com/questions/5679648/why-would-this-contenttemplate-findname-throw-an-invalidOperationException-on[^]

コメント

タイトルとURLをコピーしました