J'ai une application Silverlight 4 pour une simple liste 'TODO'. Le problème que j'ai est que la liaison de données est l'accrochage des relations sur mon objet TODO
, ce qui provoque le contexte de données RIA pour l'ajouter à la liste DataContext.TODOs
avant que je le veux là. Je souhaite traiter l'objet comme nouveau et détaché jusqu'à ce que je sois explicitement prêt à l'ajouter au contexte de données.Comment empêcher Silverlight RIA Entity d'être attaché au datacontext avant que je sois prêt
Voilà comment cela fonctionne: J'ai mon entité TODO
qui est associée à une (relation d'entité de services RIA) Status
.
Je crée une nouvelle entité TODO()
qui est transmise à une fenêtre contextuelle ChildWindow
. Notez que je n'ajoute pas cette nouvelle entité à mon datacontext.
new CreateTODOPopup(new TODO()).Show();
Dans le DataForm dans mon ChildWindow J'ai un combobox pour Status
qui est DataBound à DataContext.Statuses
.
Le problème est que l'action de la sélection d'un Status
dans la liste déroulante associe effectivement l'entité au contexte pour moi - finissant par donner un état de EntityState.New
et fait ajouter à la DataContext.TODOs
colleciton.
Ce serait bien, sauf qu'il apparaît maintenant dans la liste principale TODO dans le cadre principal. Je ne veux pas que ce soit parce qu'il n'a pas encore été commis par ChildWindow.
Comment puis-je résoudre ce problème? Soit en empêchant l'entité de devenir attachée - soit en la cachant d'une manière ou d'une autre à tout contrôle auquel elle est liée jusqu'à ce qu'elle ait été ajoutée.
Je ne l'attache jamais explicitement, il se fixe simplement. Je ne suis pas sûr quand je le détacherais –