Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: C++/CLI mit .NET ::  Playlist mit List<T> und ListBox?     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
BX
Unregistrierter




Beitrag BX Unregistrierter 13:20:17 30.08.2010   Titel:   Playlist mit List<T> und ListBox?            Zitieren

Hallo zusammen,

folgende Situation: ich habe vor einem halben Jahr ein Programm mit C++/CLI + Forms geschrieben, dass zum Test von Microcontrollern verwendet wird. Dazu sind Anweisungen und erwartete Resultate in einer XML-Datei gespeichert, die aus einem Modell generiert werden (nicht teil des Programms). Bitte jetzt kein Diskurs drüber ob man das Programm sinnvoller in C# programmiert hätte...
Zum Rahmenproblem: Bislang reichte es aus, eine Datei laden zu können, nun soll das Ganze erweitert werden, also mehrere Dateien in eine Art "Playlist" geladen werden können, welche ihrerseits geladen und gespeichert werden können soll. d.H. Benutzer drückt auf Start, wenn eine Datei durch ist, wird die nächste geladen.

Mein Ansatz war folgender: Ich schreibe mir eine Klasse, mit der ich die Filestreams laden, schließen usw. kann. In dieser Klasse befindet sich eine List<T>, in die ich meine Elemente einreihen will. Die List<T> will ich mit einer ListBox anzeigen und bearbeiten (Elemente verschieben, löschen...).
Die Frage ist: Wie bekomme ich diese Verknüpfung hin?
(entweder die Frage ist so simpel dass die sonst niemand stellt, oder ich verwendete bisher die falschen Suchbegriffe...)
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2111
Beitrag Th69 Mitglied 14:54:31 30.08.2010   Titel:              Zitieren

Stichwort: DataBinding

C++/CLI:
listBox->DisplayMember = "Name";
listBox->ValueMember = "Id";
listBox->DataSource = list;
C++/CLI:
listBox->DisplayMember = "Name";
listBox->ValueMember = "Id";
listBox->DataSource = list;
C++/CLI:
listBox->DisplayMember = "Name";
listBox->ValueMember = "Id";
listBox->DataSource = list;

Für Elemente verschieben, löschen etc. bietet sich aber besser eine BindingList<T> an, da diese das Ereignis 'ListChanged' anbietet (so daß sich die ListBox selbständig bei Änderungen aktualisiert).
BX
Unregistrierter




Beitrag BX Unregistrierter 15:38:09 31.08.2010   Titel:              Zitieren

Danke, das hat mir schon mal wesentlich weiter geholfen! :)
Nur an einer Stelle hakt's leider noch. :(

Meine Listenelemente haben folgende Klasse (im Moment ja wenig mehr als ne Struktur)
C++/CLI:
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
public ref class fileInfo
{
public:
    fileInfo(String^, String^);
    int id;   
    String^    FilePath; //Voller Dateipfad
    String^    FileName; //Dateiname
};
C++/CLI:
1
2
3
4
5
6
7
8
public ref class fileInfo
{
public:
fileInfo(String^, String^);
int id;
String^ FilePath; //Voller Dateipfad
String^ FileName; //Dateiname
};
C++/CLI:
1
2
3
4
5
6
7
8
public ref class fileInfo
{
public:
    fileInfo(String^, String^);
    int id;   
    String^    FilePath; //Voller Dateipfad
    String^    FileName; //Dateiname
};

Die Listbox wird folgendermaßen angesprochen
C++/CLI:
fiFileList = fpPlaylist->fpGetList();
listBox1->DisplayMember = "FileName";
listBox1->ValueMember = "FilePath";
listBox1->DataSource = fiFileList;
fiFileList->ListChanged += gcnew ListChangedEventHandler(this, &filePlaylist::fiFileList_ListChanged);
C++/CLI:
fiFileList = fpPlaylist->fpGetList();
listBox1->DisplayMember = "FileName";
listBox1->ValueMember = "FilePath";
listBox1->DataSource = fiFileList;
fiFileList->ListChanged += gcnew ListChangedEventHandler(this, &filePlaylist::fiFileList_ListChanged);
C++/CLI:
fiFileList = fpPlaylist->fpGetList();
listBox1->DisplayMember = "FileName";
listBox1->ValueMember = "FilePath";
listBox1->DataSource = fiFileList;
fiFileList->ListChanged += gcnew ListChangedEventHandler(this, &filePlaylist::fiFileList_ListChanged);

Nun besteht das Problem, dass die Liste zwar aufgebaut wird (anhand der Events schön sichtbar) aber in der Listbox entweder nichts auftaucht, oder nur Einträge mit dem Text "fileInfo", was ja der Klassenname ist.
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2111
Beitrag Th69 Mitglied 15:46:32 31.08.2010   Titel:              Zitieren

Beim Databinding mußt du zwingend Eigenschaften (Properties) verwenden, keine einfachen Klassenmember!
BX
Unregistrierter




Beitrag BX Unregistrierter 16:31:00 31.08.2010   Titel:              Zitieren

Danke, der Hinweis hat mir gefehlt. :live:
C/C++ Forum :: C++/CLI mit .NET ::  Playlist mit List<T> und ListBox?   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.