Bonjour,
j'aurais une petite interrogation concernant l'arbre logique en WPF.
Voila mon soucis : j'ai un ItemsControl qui contient comme items des FrameworkElements. Cet ItemsControl contient aussi un TabControl, et je voudrais ajouter certains des items de l'ItemsControl dans le TabControl, sans les retirer de l'ItemsControl d'origine et sans avoir à passer par du binding. Quelque chose du genre :
monItemsControl.monTabControl.Items.Add(monItemsControl.Items[0]);
Evidement, si je fais ça, j'obtiens une exception comme quoi un objet ne peut pas avoir deux parents logiques et que je dois d'abord lui retirer son parent logique avant de l'ajouter ailleurs. J'ai donc utilisé RemoveLogicalChildren avant de l'ajouter. Mais ça ne m'arrange pas que le parent logique de mon item soit monItemsControl.monTabControl plutôt que monItemsControl ... et RemoveLogicalChildren étant protected, je n'ai pas accès à monItemsControl.monTabControl.RemoveLogicalChildren !
Ma question est donc la suivante : Y a-t-il un moyen quelconque pour ajouter un item dans un TabControl (et donc par extension dans tout ItemsControl) sans que cela impacte sur son parent logique ? Et si non quelqu'un aurait-il une idee quelconque sur comment rétablir le parent logique d'origine ?
Merci d'avance ^^
Partager