2009-09-24 5 views
1

J'écris une petite application de lecteur multimédia Silverlight. En haut de la page, j'ai une listbox horizontale avec listboxitems. La liste est liée à une source de données contenant un objet que j'ai créé appelé ContentItem. Le ContentItem est défini comme suit:Comment mettre à jour la propriété Source de MediaElement et démarrer la lecture dans Silverlight 3.0

public class ContentItem 
    { 
     public string CoverUrl { get; set; } 
     public string ResourceUrl { get; set; } 

     public ContentItem() 
     { 
     } 

    } 

J'ai aussi un élément média:

<MediaElement x:Name="MediaBox" Source="http://localhost/repository/FighterPilot.wmv" Stretch="Fill"/> 

Donc, mon thaught était, lorsque l'utilisateur choisit une nouvelle ContentItem dans la liste, je veux changer la source de MediaElement et commencez à lire le nouveau ContentItem. Pour ce faire, je l'ai utilisé l'événement SelectionChange ListBox: private void CoverFlowList_SelectionChanged (expéditeur d'objet,

System.Windows.Controls.SelectionChangedEventArgs e) 
     { 
      MediaBox.Stop(); 
      ListBoxItem SelectedItem = (ListBoxItem)sender; 
      ContentItem SelectedContent = (ContentItem)SelectedItem.Content; 
      MediaBox.Source = new Uri(SelectedContent.ResourceUrl); 
      MediaBox.Play(); 
     } 

Mais cela ne veut pas fonctionner lorsque je déboguer le code, je peux pas tout le chemin à ListBoxItem SelectedItem = (ListBoxItem)sender;. mais à cette ligne tout se fige.Le webbrowser montre une page vierge, et le débogueur (Visual Studio 2008) semble encore déboguer mais rien ne se passe

Une idée de ce que je fais mal ici? Je pourrais mettre en œuvre cette fonctionnalité différente?

Je suis très reconnaissant pour les conseils!

Répondre

1

L'erreur était dans mon typecasting. Changement

ListBoxItem SelectedItem = (ListBoxItem)sender; 
ContentItem SelectedContent = (ContentItem)SelectedItem.Content; 

dans

ContentItem SelectedItem = (ContentItem)((ListBox)sender).SelectedItem; 

a résolu le problème. Donc l'erreur évidente était que le ListBoxItem n'était pas l'expéditeur puisque le ListBox ofcourse était l'expéditeur.

Merci à tous ceux qui ont perdu un temps précieux à essayer de corriger mon code écrit bâclé.

0

Ce que je l'ai fait:

Uri SomeVariable = new Uri("Devil May Cry - Shall Never Surrender", UriKind.RelativeOrAvsolute); 
MyPlayer.Source = SomeVariable; 
Questions connexes