begin process at 2008 07 21 03:34:33
1 213 565 membres
33 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BINDER DES PROPRIÉTÉS CALCULÉES AVEC WPF


Information sur la source

Catégorie :WPF Source .NET ( DotNet ) Classé sous : wpf, databinding, expressions, view, CollectionView Niveau : Débutant Date de création : 29/11/2007 Date de mise à jour : 08/04/2008 20:14:46 Vu / téléchargé: 2 899 / 94

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Cette source permet d'ajouter des propriétés virtuelles à la vue d'une collection liée à un contrôle. On peut ainsi afficher et modifier le résultat de n'importe quelle expression basée sur les propriétés d'un des objets de la collection. Le databinding n'a plus de limite :-) Il s'agit d'un projet framework 3.5.

Source

  • Tout est dans le zip.
  • Voici comment se fait l'ajout d'une propriété virtuelle :
  • var view = new CollectionView<Company>(MyCollection);
  • view.FakePropertiesDefinitions.Add(
  • "NomDeLaPropriétéVirtuelle",
  • //méthode "get"
  • c =>
  • {
  • view.StoredObject = [n'importe quelle expression : linq ou autre];
  • return [une expression basée sur view.StoredObject];
  • },
  • //méthode "set"
  • value =>
  • {
  • //on peut ici faire toute sorte d'opération de mise à jour sur view.StoredObject
  • });
  • this.DataContext = view;
Tout est dans le zip.
Voici comment se fait l'ajout d'une propriété virtuelle :

var view = new CollectionView<Company>(MyCollection);
view.FakePropertiesDefinitions.Add(
	"NomDeLaPropriétéVirtuelle",
	//méthode "get"
	c =>
	{
		view.StoredObject = [n'importe quelle expression : linq ou autre];
		return [une expression basée sur view.StoredObject];
	},
	//méthode "set"
	value =>
	{
                //on peut ici faire toute sorte d'opération de mise à jour sur view.StoredObject
	});

this.DataContext = view;

Conclusion

Je n'ai pas encore testé en profondeur mon code. Mais ça marche avec l'exemple que j'ai fournit. N'hésitez pas à me faire des suggestions pour améliorer ce code ;-)
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

29 novembre 2007 04:23:12 :
correction de l'exemple
  • signaler à un administrateur
    Commentaire de Julien237 le 03/12/2007 09:55:34

    Waouw super, juste ce que je cherchais, ça tombe vraiment à pic, merci !

  • signaler à un administrateur
    Commentaire de Julien237 le 03/12/2007 09:56:17 10/10

    J'avais oublié la note...

  • signaler à un administrateur
    Commentaire de yoannd le 04/12/2007 17:47:06 10/10

    Pour moi, c'est du tout bon !

    C'est exactement le genre de choses que je m'amuse à faire en ce moment !

    Merci pour cette source !

  • signaler à un administrateur
    Commentaire de mathmax le 04/12/2007 22:44:34

    Merci beaucoup pour vos commentaires.

    N'hésitez pas à me faire part de suggestions pour améliorer le code surtout si c'est un sujet sur lequel vous avez déjà travaillé. :-)
    Je trouve que le databinding est un sujet passionnant. J'adorerais améliorer cette source avec quelqu'un d'autre...

  • signaler à un administrateur
    Commentaire de yoannd le 04/12/2007 22:56:11

    Tiens, j'ai peut-être une petite question pour toi :
    Je suis en train de développer une petite appli de gestion de comptes personnels. Pour te planter un peu le décor, il y a un objet principal, contenant des banques, chaque banque contient des comptes, qui contiennent des relevés bancaires, qui contiennent des opérations bancaires (je simplifie un peu, mais le principe est là).
    Je souhaiterais binder mon objet principal dans un treeview avec des hierarchicaldatatemplates, mais attention, je souhaiterais par exemple que les relevés bancaires soient regroupés par année (exemple).
    Grosso modo, le treeview donnerais un truc comme ça :
    - Mes comptes
       - Banques
           - Crédit agricole
                - Compte chèque
                    - Relevés bancaires
                        + 2006
                        - 2007
                             - Relevé du XX/XX/2007
                                   - Operation bancaire

    Bref, est-ce que tu penses que c'est faisable ?
    Autre question : j'ai constaté qu'on ne pouvais pas référencer un type dans le xaml, si ce trouve en dehors de l'assembly en cours... Les xmlns n'y font rien. T'es-il arrivé d'avoir ce problème ? (peut-être que c'est du à ma version du fmk, qui est une beta, et que je suis en train de remplacer par une release en ce moment même...).

    En tout cas, merci d'avance si tu peux m'aiclairer sur ces points :)

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

Snippets en rapport

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS