myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und XAML » ComboBox Live Vorschau des aktuell "selektierten" Items
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

ComboBox Live Vorschau des aktuell "selektierten" Items

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Simme211 Simme211 ist männlich
myCSharp.de-Mitglied

Dabei seit: 30.05.2018
Beiträge: 5
Entwicklungsumgebung: Java, C#
Herkunft: Illertissen


Simme211 ist offline

ComboBox Live Vorschau des aktuell "selektierten" Items

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo liebe Community.
Mein Name ist Simon und bin neu in diesem Forum. Derzeit bin ich noch Student der Wirtschaftsinformatik und programmiere überwiegend Java, arbeite aber nun schon seit einiger Zeit mit C#, um einfach meine Programmierhorizont zu erweitern.
Außerdem habe ich einen Minijob als C#-Programmierer angenommen und bin dabei auf auf folgenden Fall gestoßen, der mir anfangs recht trivial vorgekommen ist. Doch das ist leider nicht so. Und mittlerweile bin ich mit meinem Latein am Ende. Hoffentlich kann mir hier jemand weiterhelfen :-)

Folgender Sachverhalt:
In einer Applikation, bei der eine ComboBox aus einer XML-Datei gefüllt wird, soll eine Art "Live Vorschau" des aktuell Item dieser ComboBox in einem separaten Fenster angezeigt werden, das mit einem Hover-Effekt "gehighlighted" ist. Der Hintergrund ist, dass die Applikation auf internationaler Ebene fungieren muss, und es zu diesem Eintrag mehrere Übersetzungen gibt.

Einfacher zusammengefasst: Sobald die ComboBox geöffnet ist und ich über die Items der ComboBox fahre, soll der Inhalt des separaten Fenster immer aktualisiert werden. Und das eben in Echtzeit. Suche verzweifelt nach einem "MouseHover" oder ähnlichem, aber nichts gefunden.

Im Internet habe ich zwar schon was gefunden, mit einer l:LivePreviewComboBox aber das funktioniert in meinem Fall nicht.

Im Anhang findet ihr noch einen Screenshot, um den Sachverhalt nochmal genauer klar zu machen.

Vielen Dank im vorraus

Gruß,.
Simon

Simme211 hat dieses Bild (verkleinerte Version) angehängt:
Unbenannt.png
Volle Bildgröße

30.05.2018 13:47 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Stefan.Haegele Stefan.Haegele ist männlich
myCSharp.de-Mitglied

avatar-3068.jpg


Dabei seit: 13.03.2009
Beiträge: 391
Entwicklungsumgebung: Visual Studio 2010 Ultimat
Herkunft: Untermeitingen


Stefan.Haegele ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Versuche es mal über die Eigenschaft SelectedItem
 https://msdn.microsoft.com/de-de/library...(v=vs.110).aspx
30.05.2018 15:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Scavanger Scavanger ist männlich
myCSharp.de-Mitglied

avatar-3209.jpg


Dabei seit: 13.03.2008
Beiträge: 307
Entwicklungsumgebung: MS VS C# 2010/2013 Prof.


Scavanger ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Stefan.Haegele:
Versuche es mal über die Eigenschaft SelectedItem

Bringt ihm nix, SelectedItem wird erst aktualisiert hat nachdem das Item angeklickt wurde.


Ich denke du wirst selbst berechnen müssen über welchen Item der Mauszeiger ist.
Du kannst das MouseMove Event abonieren, in den MouseEventArgs bekommst du die Koordinaten und dann kannst du per DropDownHeight und der Anzahl der Items berechnen über welchen Item der Zeiger sich befindet.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Scavanger am 30.05.2018 16:57.

30.05.2018 16:50 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.638
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Simon,

ich nehme mal an, du benutzt WinForms (und nicht WPF).
Schau dir mal die Klasse ToolTipComboBox aus  Show ToolTip with ComboBox (dropdownmenu) an (die Lösung besteht in der Benutzung einer Ownerdraw-ComboBox und Implementierung der Logik innerhalb vom DrawItem-Ereignis mittels DrawItemState.Selected).

Wenn das klappt, dann müßtest du den Code so abändern, daß anstatt dem ToolTip dein eigener Code ausgeführt wird (am besten wäre dort dann ein Ereignis dafür anzubieten, so daß die Klasse dann generischer wäre).
30.05.2018 17:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Simme211 Simme211 ist männlich
myCSharp.de-Mitglied

Dabei seit: 30.05.2018
Beiträge: 5
Entwicklungsumgebung: Java, C#
Herkunft: Illertissen

Themenstarter Thema begonnen von Simme211

Simme211 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Th69:
ich nehme mal an, du benutzt WinForms (und nicht WPF).

Doch, ich verwende WPF, und nicht WinForms :-(
31.05.2018 21:27 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
witte
myCSharp.de-Mitglied

Dabei seit: 03.09.2010
Beiträge: 882


witte ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

WPF kennt doch auch ToolTips. Setze es damit um, die Idee von Th69 ist doch in Ordnung.
01.06.2018 10:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.638
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du meinst dieses Control:  ComboBox with Live Preview? Was klappt denn daran nicht? Mittels "{ Binding LivePreviewItem }" kommt man dann an das gerade mit der Maus ausgewählte Element. Oder verwendest du noch kein MVVM? Das solltest du aber.
01.06.2018 10:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Simme211 Simme211 ist männlich
myCSharp.de-Mitglied

Dabei seit: 30.05.2018
Beiträge: 5
Entwicklungsumgebung: Java, C#
Herkunft: Illertissen

Themenstarter Thema begonnen von Simme211

Simme211 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Th69:
Du meinst dieses Control:  ComboBox with Live Preview? Was klappt denn daran nicht? Mittels "{ Binding LivePreviewItem }" kommt man dann an das gerade mit der Maus ausgewählte Element. Oder verwendest du noch kein MVVM? Das solltest du aber.

Genau dieses. Aber hiermit habe ich nochmals ein Problem. Das habe ich noch vergessen zu erwähnen:
Der Grundstock der Seite ist auf WPF basierend. Innerhalb eines bestimmten Content-Bereichs, in dem mit Hilfe von einem TabControl auf verschiedene Inhalte zugegriffen wird. Der eigentliche Inhalt wird für die verschiedenen Tabs somit mit C# realisiert, weshalb mir ist gerade nicht klar, wie ich das mit dem "Binding LivePreviewItem" in C# umsetzen kann.

Zum Thema ToolTip: Mit welchem Event kann ich den ToolTip dann aktivieren? Ich habe was mit Draw gelesen?
01.06.2018 13:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.638
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das Binding kannst du auch genauso per Code durchführen:  How to set a binding in Code?
Aber warum verwendest du kein XAML und ViewModels?
01.06.2018 14:34 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Simme211 Simme211 ist männlich
myCSharp.de-Mitglied

Dabei seit: 30.05.2018
Beiträge: 5
Entwicklungsumgebung: Java, C#
Herkunft: Illertissen

Themenstarter Thema begonnen von Simme211

Simme211 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen.

Jetzt melde ich mich wieder nach etwas längerer Abwesenheit :-)

Ich hab versucht das Binding umzusetzen. Doch leider hab ich es nicht hinbekommen.
Wie stelle ich dieses Binding in C# um?

{Binding LivePreviewItem, ElementName=liveBox}

Der Grund, warum ich nicht WPF und C# verwende ist dieser, dass es die Vorgabe der Firma ist. Ich persönlich hätte es gern gemacht, aber da sind wir leider die Hände gebunden :-(
14.06.2018 10:33 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.398
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Simme211:
Der Grund, warum ich nicht WPF und C# verwende ist dieser, dass es die Vorgabe der Firma ist.

Du verwendest doch WPF und C#. Was genau ist die Vorgabe der Firma? Die verbieten doch nicht die Verwendung von XAML?
14.06.2018 10:42 Beiträge des Benutzers | zu Buddylist hinzufügen
Simme211 Simme211 ist männlich
myCSharp.de-Mitglied

Dabei seit: 30.05.2018
Beiträge: 5
Entwicklungsumgebung: Java, C#
Herkunft: Illertissen

Themenstarter Thema begonnen von Simme211

Simme211 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von MrSparkle:
Zitat von Simme211:
Der Grund, warum ich nicht WPF und C# verwende ist dieser, dass es die Vorgabe der Firma ist.

Du verwendest doch WPF und C#. Was genau ist die Vorgabe der Firma? Die verbieten doch nicht die Verwendung von XAML?

Die Vorgabe ist, dass das "Hauptfenster", sprich alles außer dem Inhalt in WPF + C# gestaltet ist. Der eigentliche Inhalt wird nur durch C# realisiert. Es werden die Inhalte in Tabs untergliedert, und das auch dynamisch. Es kommt drauf an, wieviel Daten aus der ausgelesenen XML-Datei kommen.

Die Konvention der Inhalte sollte demnach durchgängig sein.

Gibts denn Ideen für das Binding, vom vorherigen Post? :-)

Ich hoffe, dass ich es bisschen verständlich erklärt hab.
14.06.2018 11:14 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.398
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wenn die Firma vorgibt, eine WPF-View ohne XAML zu erstellen (was ich ehrlich gesagt nicht glaube), dann mußt du es halt so machen. Aber Hilfe wirst du dafür kaum bekommen, weil kein normaler Entwickler so arbeiten würde.
14.06.2018 11:16 Beiträge des Benutzers | zu Buddylist hinzufügen
pinki
myCSharp.de-Mitglied

avatar-4072.jpg


Dabei seit: 24.08.2008
Beiträge: 683
Herkunft: OWL


pinki ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Inhalt wären für mich die Daten.
Die können ja sonstwo her kommen und können dann im ViewModel für die View aufbereitet werden.
Wenn diese dann komplett im XAML gebaut wird und per Datenbindung mit dem ViewModel verbunden wird, wäre es nach meinem Verständnis trotzdem so, dass der Inhalt - also die anzuzeigenden Daten - komplett in C# realisiert würde und das Hauptfenster - also die eigentliche Darstellung - XAML ist.
14.06.2018 13:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 2 Jahre.
Der letzte Beitrag ist älter als 2 Jahre.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 07.07.2020 08:52