CMatt
Messages postés38Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention15 octobre 2010
-
14 oct. 2010 à 15:55
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
15 oct. 2010 à 14:12
Bonjour à tous,
malgré de multiples recherches et essais, je ne parviens pas à utiliser un ObjectDataProvider dans un DataTemplate.
Le but de la manoeuvre est d'afficher le résultat d'une méthode d'un élément d'une liste directement dans un ListBox.
Ma classe objet :
using System;
using System.Windows;
namespace MyNS
{
public class MyObject
{
public string Text { get; set; }
public double X { get; set; }
public double Y { get; set; }
public override string ToString() { return string.Concat( this.Text, " (", this.X.ToString(), ";", this.Y.ToString(), ")" ); }
public Point ToPoint() { return new Point( this.X, this.Y ); }
}
}
namespace MyNS
{
public partial class MyWindow : Window
{
public MyWindow()
{
List<MyObject> objects = new List<MyObject>();
objects.Add( new MyObject { Text "Objet 1", X 0, Y = 0 } );
objects.Add( new MyObject { Text "Objet 2", X 1, Y = 0 } );
objects.Add( new MyObject { Text "Objet 3", X 0, Y = 1 } );
objects.Add( new MyObject { Text "Objet 4", X -1, Y = 0 } );
objects.Add( new MyObject { Text "Objet 5", X 0, Y = -1 } );
objects.Add( new MyObject { Text "Objet 5", X 2, Y = 0 } );
Resources.Add( "objects", objects );
InitializeComponent();
}
}
}
Rien de compliqué il me semble.
Dans ces conditions, je n'ai rien à l'affichage (pas d'appel à une méthode ToPoint(), et donc pas d'appel à Point.ToString() pour l'affichage).
En revanche, si j'enlève l'ObjectDataProvider de mon DataTemplate, j'ai bien le résultat d'un appel à la méthode ToString() de mon objet.
Quelqu'un peut-il me dire ce que je fais de travers?
CMatt
Messages postés38Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention15 octobre 2010 15 oct. 2010 à 11:44
Salut et merci pour ta réponse.
Néanmoins, permet moi d'être un peu têtu. Le document n'évoque aucune solution quant à l'appel d'une méthode dans un DataTemplate (en l'occurence, aucun exemple d'appel sur une méthode déclarée par la classe Customer elle même n'est présent).
Oublions mon exemple et considérons le cas où il est nécessaire de passer des paramètres à une méthode d'un objet listé, et d'afficher le résultat de cet appel.