[ad_1]
comment accéder à txtName dans DataGrid.RowDetailsTemplate au moment de l’exécution :
mon code :
<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>
je veux accéder à txtName dans l’événement BtnDeleteClick.
Solution 2
La souhaitée Modèle de détails de ligne le contenu est disponible au moment où la ligne est développée.
Jusqu’à cet événement (voir LoadingRowDetails) le contenu est nul et essayez de le retrouver avec DataGridDetailsPresenter.ContentTemplate conduit à une exception :
System.InvalidOperationException
HRésult=0x80131509
Message=Opération Valable uniquement pour les éléments utilisant ce modèle.
Source = Cadre de présentation
Trace de la pile:
sur System.Windows.FrameworkTemplate.FindName (nom de chaîne, FrameworkElement templatedParent)
à ProductionOverviewModule.View.ProductionOrdersGrid.GetRowDetailTemplateGrids() dans fileName.cs:line 86
pour en savoir plus, voir le lien https://stackoverflow.com/questions/5679648/why-would-this-contenttemplate-findname-throw-an-invalidoperationexception-on[^]
[ad_2]
コメント