J'ai une zone de liste que j'essaie de remplir avec une liste de zones de visualisation. La liste de sélection prend dans la liste sans problème. Toutefois, lorsque ma fonction atteint sa fin, je reçois l'erreur:Affichage d'une zone de liste de zones de visualisation
"Doit déconnecter l'enfant spécifié du Visual parent actuel avant de l'attacher au nouveau parent Visual." Les viewbox sont créées à partir de la même vue initiale, puis éditées, ce qui, selon moi, peut être mon problème.
for(...)
{
Viewbox newviewbox = (Viewbox)myViewbox; //myViewbox created in XAML
// edits newviewbox here
viewboxlist.Add(newviewbox); //viewboxlist created upon initialization
newviewbox = null;
}
myListBox.ItemsSource = viewboxlist;
Un conseil est grandement apprécié.
Merci.
Merci à vous deux pour la réponse rapide. Peter, si je crée une nouvelle viewbox à chaque itération de la boucle for, puis-je toujours définir les nouvelles viewboxes égales à celle définie dans XAML? Je le fais actuellement, et reçois toujours la même erreur. var newviewbox = new ViewBox(); newviewbox = myViewbox Si ce n'est pas le cas, existe-t-il une solution de contournement pour utiliser cette vue initiale en tant que modèle? (La liaison ne fonctionnera pas car j'ai besoin d'utiliser les paramètres du code derrière ... Je pense) Merci beaucoup. – andrew
Bien sûr, vous obtenez la même erreur, vous ne créez pas une nouvelle copie de l'élément, vous copiez seulement la * référence * dans le même élément. Vous devriez jeter l'élément dans xaml et créer/initialiser de nouvelles instances à chaque itération (oui, toutes les propriétés que vous avez précédemment définies dans xaml peuvent également être définies avec du code). Ou plus préférablement, vous pouvez opter pour la liaison de données et utiliser un élément dans xaml comme modèle. Vous devriez lire sur la liaison de données et les modèles de données pour avoir une idée de cela, c'est une fonctionnalité très puissante de wpf. –