Bonjour
J ai une application wpf dans laquelle j ai cree un dataset a l aide de l assistant source de donnees de visual 2008.
Dans mon application , j ai deux windows. Dans la premiere , j ai une listbox qui se bind a un collectionviewsource cree a partir du dataset t et un ensemble de textbox et image qui reflete la ligne choisie par la listbox. Tout fonctionne parfaitement a l' aide de different tutorial disponible sur le net.
Dans ma deuxieme window, je n ai plus de Listbox mais uniquement des controle genre textblock, image, ... et la table de mon Dataset (via le code de mon appli) ne contient toujours que une ligne. Je voudrai que mes differents controle soit toujours binder a la ligne de mon dataset.
En premiere approche , j ai tenter de mettre le datacontext de mon Grid a la table de mon dataset et binder mes controle en xaml via du code similaire a
<textblock content="{binding path=macolonne}" />
mais ceci ne fonctionne pas sauf peut etre si je cree une listbox invisible.
En deuxieme approche je cree mes binding sur un datarow mais le code suivant ne fonctionne pas quand je lance mafonction
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
Binding monbinding;
Dataset1.TABLERROW marow;
.....
public Windows1()
{
....
monbinding = new Binding();
monbinding.source = marow;
monbinding.path = new PropertyPAth("macolonne");
monbinding.Mode= BindingMode.OneWay;
montesxtblock.SetBinding(TextBlock.TextProperty,monbinding);
.....
}
public void mafonction()
{
montableadapter.Fill( mondataset);
marow = (Dataset1.TABLERROW marow) mondataset.Tables[0].Rows[0];
...
} |
Aucune exception n est levee mes mon textblock ne se met pas a jour.
Par contre le code suivant qui ne justifie plus le binding fonctionne
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
Binding monbinding;
Dataset1.TABLERROW marow;
.....
public Windows1()
{
....
}
public void mafonction()
{
montableadapter.Fill( mondataset);
marow = (Dataset1.TABLERROW marow) mondataset.Tables[0].Rows[0];
monbinding = new Binding();
monbinding.source = marow;
monbinding.path = new PropertyPAth("macolonne");
monbinding.Mode= BindingMode.OneWay;
montesxtblock.SetBinding(TextBlock.TextProperty,monbinding);
...
} |
Si quelqun voi exactement la source du probleme je le remercie d'avance.
Partager