Ok, donc j'ai essayé de mettre en œuvre un CoverFlow trouvé sur CodePlex http://silverlightcoverflow.codeplex.com/Silverlight Reliure Edition
Je voulais utiliser ma propre classe pour la liaison de données:
class CoverItem
{
BitmapImage _image;
string _title;
string _link;
string _content;
public BitmapImage Image
{
get { return _image; }
set { _image = value; }
}
public string Title
{
get { return _title; }
set { _title = value; }
}
public string Link
{
get { return _link; }
set { _link = value; }
}
public string Content
{
get { return _content; }
set { _content = value; }
}
}
C'est le XAML pour l'utilisateur couverture contrôle de CodePlex:
<custom:CoverFlowControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<Image Source="{Binding Image}" Width="300" />
<TextBlock Text="{Binding Title}" Width="300" />
<TextBlock Text="Testing" Width="300" />
</StackPanel>
</DataTemplate>
</custom:CoverFlowControl.ItemTemplate>
le problème que j'ai est que je reçois mot « test » pour chaque élément qui était lié, mais je ne reçois pas l'image ou le titre, qui sont fr om mes objets attachés à la propriété ItemSource du contrôle.
Covers.ItemsSource = _items;
Ma question est, où je vais mal? Cela devrait être une simple liaison, alors pensez que je manque quelque chose.
Merci d'avance pour l'aide.
EDIT:
Si je change le code à ceci:
List<BitmapImage> images = new List<BitmapImage>() { _items[0].Image, _items[1].Image, _items[2].Image, _items[3].Image };
Covers.ItemsSource = images;// _items;
Et puis ai la liaison comme ceci:
<Image Source="{Binding}" Width="300" />
Je reçois maintenant mes images d'affichage. Donc, je sais que c'est un problème avec la liaison quelque part.
ont également essayé
<Image Source="{Binding Path=Image}" Width="300" />
De quel type de liste il s'agit _items et quand/comment est-il créé? Quand les CoverItems individuels sont-ils ajoutés à la liste? –
private Liste _items = new Liste (); –
jimplode
Ils sont remplis à partir du contenu d'un fichier XML en utilisant un xmlreader, mais ce n'est pas important – jimplode