J'ai une fenêtre cheapo où j'insère des données dans une base de données. Mes db-colonnes sont les suivantes:Comment récupérer des images à partir de la base de données SQL Server dans le formulaire WPF? (LINQ, Databinding, SQL)
col name(varchar),
col age (int),
col photo (image) (all NOT NULL)
Maintenant, je veux récupérer l'information de la DB dans ma fenêtre. J'ai une zone de liste où je récupère les noms comme celui-ci (requête LINQ)
public void updateListbox(){
DataClasses1DataContext dc = new DataClasses1DataContext();
var query = from s in dc.tablename select s;
_listBox1.ItemsSource = query.ToList();
}
Mon code XAML pour la liaison ressemble à ceci:
<ListBox ... DisplayMemberPath="Name"/>
de sorte que les noms sont désormais affichées dans la liste.
L'étape suivante consiste à afficher l'image/photo de la personne représentative sélectionnée dans la zone de liste sur ma fenêtre/formulaire. Je l'ai fait avec la propriété d'âge dans un TextBlock comme ceci:
<TextBlock ... Text="{Binding ElementName=_listBox1, Path=SelectedItem.Age}" />
, mais je ne sais pas comment récupérer l'image dans la fenêtre de ma WPF.
J'enregistrer l'image comme celui-ci
byte[] image = File.ReadAllBytes(@imagepath);
...
sqlcommandobject.Parameters.Add(new SqlParameter("@Photo", image));
...
en utilisant OpenFileDialog pour charger l'image (-path) avant insterting dans la db. Juste récupérer est mon problème maintenant. Je voudrais vraiment garder la liaison aussi simple qu'il est à ce moment, mais je suppose qu'il n'y a aucun moyen de récupérer l'image en faisant quelque chose comme ceci:
<Image ... Source="{Binding ElementName=_listBox, Path=SelectedItem.Photo}" />
Comme les données binaires doit être reconverti à un objet image (?), et je suis perdu sur la façon de le faire et de le conbiner avec les fixations. Quelqu'un a une idée?
Merci d'avoir lu!