J'ai une grille et j'ai besoin de remplacer dynamiquement un contrôle qui réside dans l'une des cellules. Je ne sais pas en termes de syntaxe pour localiser la cellule de la grille, comme où je mets dans le numéro de ligne et de colonne afin que je puisse supprimer tout ce qui est dedans.Silverlight: Supprimer le contenu d'une cellule spécifique dans une grille
Répondre
Si vous connaissez la cellule et la ligne que le contrôle vit, vous pouvez utiliser un LINQ déclaration pour l'attraper.
Voici une déclaration LINQ qui va faire le premier contrôle qui se trouve dans la colonne 3, ligne 4.
var control = (from d in grid.Children
where Grid.GetColumn(d as FrameworkElement) == 3
&& Grid.GetRow(d as FrameworkElement) == 4
select d).FirstOrDefault();
Vous pouvez itérer les enfants de la grille en vérifiant leurs valeurs de ligne et de colonne à l'aide des méthodes Grid.GetRow et Grid.GetColumn et remplacer le contenu ciblé lorsque les valeurs correspondent. Voici un échantillon testé dans WPF, mais devrait fonctionner dans Silverlight:
<Grid x:Name="SampleGrid">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Rectangle Fill="Red" Width="20" Height="20" Grid.Row="0" Grid.Column="0" />
<Rectangle Fill="Orange" Width="20" Height="20" Grid.Row="0" Grid.Column="1" />
<Rectangle Fill="Yellow" Width="20" Height="20" Grid.Row="0" Grid.Column="2" />
<Rectangle Fill="Green" Width="20" Height="20" Grid.Row="1" Grid.Column="0" />
<Rectangle Fill="Blue" Width="20" Height="20" Grid.Row="1" Grid.Column="1" />
<Rectangle Fill="Indigo" Width="20" Height="20" Grid.Row="1" Grid.Column="2" />
<Rectangle Fill="Violet" Width="20" Height="20" Grid.Row="2" Grid.Column="0" />
<Rectangle Fill="Black" Width="20" Height="20" Grid.Row="2" Grid.Column="1" />
<Rectangle Fill="Gray" Width="20" Height="20" Grid.Row="2" Grid.Column="2" />
<Button Grid.Row="3" Grid.ColumnSpan="3" Margin="10" x:Name="Swap" Click="Swap_Click" Content="Swap"/>
</Grid>
Dans le gestionnaire d'événements:
private void Swap_Click(object sender, RoutedEventArgs e)
{
Ellipse newEllipse = new Ellipse() { Fill = new SolidColorBrush(Colors.PaleGoldenrod), Width = 20d, Height = 20d };
for (int childIndex = 0; childIndex < this.SampleGrid.Children.Count; childIndex++)
{
UIElement child = this.SampleGrid.Children[childIndex];
if (Grid.GetColumn(child) == 2 && Grid.GetRow(child) == 2)
{
this.SampleGrid.Children.Remove(child);
Grid.SetRow(newEllipse, 2);
Grid.SetColumn(newEllipse, 2);
this.SampleGrid.Children.Add(newEllipse);
}
}
}
aurait dû ajouter que si vous avez un grand nombre ou ligne/Col. vous pouvez ajouter une instruction break pour éviter itérer les autres enfants Une fois que vous avez atteint votre cible. –
Vous pouvez rappeler de contrôle que je mets dans la grille d'ajouter une variable privée:
private Control controlCentral = null;
Ensuite, attribuez à cette variable le contrôle que vous ajoutez à la grille, de sorte que vous pouvez utiliser Supprimer pour supprimer le contrôle de la grille.
Le code suivant remplace le contrôle de la ligne 0 colonne 1:
private void MostrarControlCentral(Control control)
{
if (control != null)
{
control.SetValue(Grid.RowProperty, 0);
control.SetValue(Grid.ColumnProperty, 1);
}
this.LayoutRoot.Children.Remove(this.controlCentral);
if (control != null)
{
this.LayoutRoot.Children.Add(control);
}
this.controlCentral=control;
}
- 1. Comment copier le contenu d'une cellule dans la grille de dojo
- 2. Affichage du contenu de la cellule sur l'indicateur dans la grille DevExpress
- 3. Supprimer le style d'édition de cellule en lecture seule Silverlight DataGrids
- 4. Supprimer une ligne dans la grille Infragistics dans Safari
- 5. Supprimer une image spécifique du cache?
- 6. wxPython: comment implémenter le collage dans une cellule de la grille?
- 7. Supprimer une ligne spécifique d'un fichier texte?
- 8. Affichage d'une barre de progression et d'un texte dans une cellule d'une grille de données (XAML)?
- 9. Documentation pour le contenu spécifique à Linux Cellulaire dans/proc
- 10. Comment mime supprimer une ligne spécifique dans un UITableView?
- 11. Fusionner le contenu de 2 cellules dans une autre 3ème cellule en utilisant VBA dans Excel
- 12. Supprimer une classe spécifique dans la page (jQuery)
- 13. Supprimer une ligne spécifique dans un .NET RichTextBox
- 14. Supprimer le contenu d'un fichier en Java
- 15. ComponentArt: Effacer une cellule dans une grille si elle est un certain DateTime
- 16. Comment supprimer la surbrillance de la souris et la surbrillance de ligne sélectionnée dans une grille de données Silverlight
- 17. centre aligner le contenu d'une zone de liste dans silverlight
- 18. jQuery Supprimer Div basé sur le contenu
- 19. Comment arrêter le rognage d'une image transformée (mise à l'échelle) dans une grille (silverlight)
- 20. Comment définir une ligne ou une cellule spécifique dans un gridview (vb 2008)
- 21. Sélectionnez une donnée particulière de la grille et le supprimer dans l'étiquette
- 22. Comment supprimer le remplissage à l'intérieur d'un DataForm Silverlight?
- 23. Silverlight agrandir le contenu d'une toile et afficher le zoom sur le contenu d'une autre toile
- 24. Rendu du contenu HTML dans l'application Silverlight
- 25. Contenu du contrôle personnalisé Silverlight dans scrollviewer
- 26. Puis-je imprimer du contenu dans Silverlight?
- 27. JavaScript supprimer cellule de tableau fusionné
- 28. éléments de cellule d'hyperlien passés dans une grille de données Flex
- 29. Menu Javascript/CSS pour remplacer le contenu dans une zone spécifique
- 30. Comment effacer tous les formulaires/données de grille dans Silverlight?
Nice - encore une fois LINQ supprime le besoin de boucles. –