[C#] Listbox Objekts

Corefighter

Grünschnabel
Hallo,

versuche grade einen Media Player zu programmieren in C# der auch Videos von YouTube abspielen kann. Der Player besteht aus Media Player Controll (für normale Musik/Video Dateien) und aus Webbrowser Controll für YouTube Videos. Man kann zwischen den beiden per Button Click schalten. Meine YouTube Abfrage sieht so aus:
Code:
// YOUTUBE ABFRAGE + SEARCH BUTTON  #################################################
        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();

            string searchTerm = textBox1.Text;

            
            string url = "http://gdata.youtube.com/feeds/videos?q=" +searchTerm;
           
            
            FeedQuery query = new FeedQuery();
            Service service = new Service();
            query.Uri = new Uri(url);
            query.StartIndex = 0;
            query.NumberToRetrieve = 50;
            AtomFeed resultFeed = service.Query(query);

            foreach (AtomEntry entry in resultFeed.Entries)
            {

                string youtubeUrl = entry.AlternateUri.Content.Replace("&feature=youtube_gdata", "");
                string compUrl = youtubeUrl.Replace("/watch?v=", "/embed/");

                listBox1.Items.Add(compUrl);
            }

//LISBOX SELEKTIERTES ITEM ABSPIELEN##############################################
        private void listBox1_Click(object sender, EventArgs e)
        {
            
            webBrowser1.Navigate(new Uri(listBox1.SelectedItem.ToString()));
            
            
        }

        }

Bin noch so ziemlich Anfänger im Programmieren. URL Encodieren sieht bestimmt sonst bessa aus.Naja mein Problemm aber ist ich möchte das Die Links in der ListBox durch Namen von Videos ersetzt werden habe schon mit
Code:
entry.Title.Text
versucht aber dann spielt der Browser die nicht ab weil da halt nur Text drinn steht wie kann man die Links mit dem Text verbinden dass der Webbrowser die erkennt****?
 
Zuletzt bearbeitet:
Hi

Schreib dir eine kleine Klasse, die die eigentlichen Daten hält (z.b. Uri). Überschreibe bei der Klasse die Methode ToString und gib das zurück, was als Text in der ListBox angezeigt werden soll.
 
Vielen Dank für sehr schnelle Antwort ,aber könntest du es vielleicht an einem Beispiel verdeutlichen habe es grade ein Paar mal versucht, aber es hat nicht geklappt :-((
 
Hi,

bei mir ist das ehe Verständniss Problemm:

also ich habe so verstanden ich erstelle eine Klasse z.B :
Code:
public class Klasse
und in diese Klasse verschiebe ich alle daten aus dem
Code:
 private void button1_Click(object sender, EventArgs e)
außer
Code:
listBox1.Items.Add(compUrl)

sorry habe noch nicht sehr viel Programmier Erfahrung : Learning by Doing .Ich erwarte auch keine Fertige Lösungen mir geht es darum das ganze zu verstehen wie das funktioniert und was das bewirkt gibt es vielleicht Paar gute Tutorials dazu bei Google habe ich nichts gescheites gefunden nur fertige Codes die mich aber nicht weiter bringen
 
Also hast du noch nicht versucht den Hinweis umzusetzen?! ;-]

C#:
internal class CallItHowYouWant
{
     public string SomeDataProperty {get; set;}
     public string SomeDisplayDataProperty {get;set;}
     protected override string ToString()
     {
          return SomeDisplayDataProperty;
     }
}

und weiter in der UI zum füllen
C#:
listBox.Items.Add(new CallItHowYouWant() {SomeDataProperty = "fubar", SomeDisplayDataProperty = "hooray"});

und beim Abfragen
C#:
if(listBox.SelectedItem is CallItHowYouWant)
{
    CallItHowYouWant cihw = listBox.SelectedItem as CallItHowYouWant;
    MessageBox.Show(cihw.SomeDataProperty);
}
 
Hi,
doch habe versucht umzusetzen ! auch wieder google durchgestörbert auf der suche nach deinen stichwörtern habe viele codes gefunden nur ich habe da null verstanden weil die codes meist vom kompletten programm waren . ABER ich danke dir VIELMALS für deine Mühe und Geduld************!!
In welchen Tutorials kann man sowas nachlesen und wie heißt diese Funktion? Also unter was muss man suchen
 
Zuletzt bearbeitet:
Zurück