Question

J'ai vue où j'ai un objet lié à une vue arborescente. L'objet a un certain nombre de collections (de différents types), donc je suis en utilisant des modèles hiearchical avec un CompositeCollection pour les afficher dans l'arborescence.

Je l'ai ensuite obtenu une zone de texte qui est lié à la selectedItem du TreeView. Ici, je suis sérialisation le selectedItem XML et l'afficher dans la zone de texte pour l'édition.

Tout bien jusqu'à présent. Cependant, le gros problème est que je je ne peux utiliser 2 voies avec databinding la propriété SelectedItem du TreeView comme il est en lecture seule.

Comment puis-je conserver proprement les modifications de zone de texte en synchronisation avec mon objet qui est lié à la TreeView?

Était-ce utile?

La solution

Je ne pense pas que vous devez faire databinding dans les deux sens sur le SelectedItem lui-même, vous devez exposer une propriété dans la classe de votre objet lié qui renvoie la chaîne sérialisée et sur set modifie de façon appropriée l'objet. Cela devrait être plus facile que de traiter avec l'objet dans son ensemble.

Autres conseils

Votre flux XML doit être représenté comme une propriété sur votre noeud SelectedItem et votre zone de texte doit être lié à cela, en quelque sorte. Le SelectedItem est en lecture seule, mais l'objet auquel il fait référence est pas. Si vous liez les deux sens sur cette propriété, vous devriez être en mesure d'affecter vos modifications correctement. Cela serait fait dans les DataTemplates et HiearchicalDataTemplates que vous utilisez, car ils sont liés à la représentation des données sous-jacentes des noeuds que vous représentez avec le TreeView.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top