2011-01-14 2 views
1

J'ai créé un contrôle TabItem avec une structure particulière (de DataGridsButtons etc.). Certains des contrôles dans les TabItem ont des noms. Cette configuration complète est créée dans le code-behind. Chaque fois qu'un nouvel onglet est créé, je clone ce TabItem. Le problème est que les noms des contrôles sont enregistrés avec le nom de domaine et lorsque je clone ces contrôles, ils ne peuvent pas être réenregistrés.Erreur de nom de fichier "Impossible d'enregistrer le nom en double" dans WPF

Je ne sais pas quelles sont mes options, mais

  1. Puis-je créer une nouvelle NameScope pour chaque TabItem? Est-ce conseillé? Si oui, comment puis-je trouver un nom de domaine particulier? Puis-je enregistrer les noms de contrôle avec le contrôle parent et ne pas vous soucier de changer les noms de famille?

Quelle est ma solution ici?

Toute aide est appréciée

Répondre

2

Sans savoir un peu plus sur ce que vous faites, il est difficile de conseiller, mais voici quelques pensées ...

Qu'est-ce que vous utilisez ces noms pour? Pourriez-vous utiliser d'autres propriétés de votre contrôle à la place, par ex. Marque?

Créer des contrôles puis les cloner est un peu méchant! Pourquoi ne pas créer un contrôle utilisateur qui contient tous vos contrôles? Vous pouvez toujours les créer dans code-behind dans le contrôle utilisateur. Cela permettra de résoudre votre problème de nom de domaine, et aussi de mieux structurer votre code!

0

Il y a une méthode que vous pouvez utiliser

public void UnregisterName(string name); 
Questions connexes