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é: 4 417 / 138

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

Cliquez pour voir la capture en taille normale
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 ;-)
 

Fichier Zip

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

Historique

29 novembre 2007 04:23:12 :
correction de l'exemple

Commentaires et avis

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 dans le forum

Frere dans un tree view [ par rintchu ] Salut,je voudrais inseré un noeud dans un arbre en tant que frere du noeud selectionné.Quelqu'un aurait il un exemple de code ?Merci Databinding et validation [ par Miltiades ] J'ai un 'petit' formulaire (juste quelques dizaines de champs dont la pluparts sont gérés par databinding,le probleme, c'est qu'une petite partie des control couleur et list view [ par lionel55 ] salut à tous,en csharp1. dans une liste view est il possible que lorsque l'on clique sur une ligneque cela coche aussi la case à cocher du début de li Expressions régulières - Taille maxi [ par bucherb ] Hello!Est-ce que qqun connait la combine pour vérifier en expression régulières la taille d'une chaine. J'explique:J'aimerais tester si la taille d'un List View [ par RM50Man ] Est il possible de selectionner seulement la cellule sur laquel on appuie ,dans une listview avec plusieurs lignes et colonnes !!!!!!!!!RM50man UserControl et DataBinding [ par cendretp ] J'ai un textbox mis &#224; jour via&nbsp;un DataBinding&nbsp;dans un UserControl&nbsp; qui ne fonctionne pas&nbsp; mais cela fonctionne dans le textbo Expressions régulières [ par brice_nice ] Bonjour, J'ai un petit probl&#232;me avec mon expression r&#233;guli&#232;re : Regex &nbsp;maRegexp = new Regex(@"^[\w\+\-\(\)\.&amp;/,':=&#176;`@ ]+$ Classes, héritage, 3D [ par Blobette ] Bonjour Je dois r&#233;aliser un projet en C# et je suis novice dans ce domaine. Voila: je dois faire une interface permettant de visualiser des info Le databinding [ par matlocker ] Bonjour,Je viens de lier un textbox a un dataset et je recupere bien le contenu du champ dans mon textbox mais comment faire pour lier mon textbox a l DataGridView et DataSet [ par Bidou ] Bonjour,Avec le datagridView (et le datagrid aussi d'ailleurs), quand on y set comme DataSource une table d'un DataSet (par exemple) alors&nbsp;le dat


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,948 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.