2009-04-29 14 views

Répondre

2

C'est le genre de chose qui peut être difficile dans WPF - bien que votre patron pense que cela devrait être facile - puisque WPF est censé activer l'animation et les visuels saisissants. Après tout, il y a toutes sortes de super démos Silverlight/WPF sur le web qui ont l'air super et vendent vraiment la technologie. Bien sûr, ce que votre patron ne sait pas, c'est que ces démos ont été écrites juste pour montrer les fonctionnalités faciles et flashy. Les choses qui sont un peu différentes de la norme, cependant, ont une mauvaise façon d'être très difficile.

Mais assez rodomontades, je vais vous donner une approche possible, mais il peut y avoir une bien meilleure:

Supposons que vous avez lié le DataGrid à une sorte de collection, et pour l'amour de la discussion nous allons supposons qu'il s'agit d'une liste d'objets Foo, c'est-à-dire List<foo> MyFoos. Vous pouvez ensuite ajouter une propriété à la classe FOO appelée BeingDeleted. Ensuite, dans le modèle de votre DataRowView, déclenchez sur cette propriété pour lancer un storyboard qui anime un fondu sortant ou un effondrement de cette ligne particulière. C'est un peu grossier, car cela implique d'ajouter une propriété à l'objet Foo qui pourrait ne rien avoir à voir avec cela. Vous pouvez également créer un wrapper spécial ou une sous-classe de Foo.

+0

C'est ainsi que j'ai finalement décidé de mettre en œuvre cela. Il y avait quelques problèmes avec la synchronisation de liste liée (puisque le synchroniseur devrait savoir ignorer les articles "presque supprimés"), et j'ai dû également réellement supprimer ces articles quand l'animation est finie. Le résultat final est plutôt désordonné (tout est étroitement lié), mais je suppose qu'il n'y a pas d'autre solution. – Andy