Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[erledigt] Datenbindung des SelectedItems funktioniert nicht.
Paschulke
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

[erledigt] Datenbindung des SelectedItems funktioniert nicht.

beantworten | zitieren | melden

Hallo zusammen,

ich habe ein sehr merkwürdiges Verhalten in einer WPF ListView (genauso wenn ich eine ComboBox oder ListBox verwende).

Folgender XAML-Code:

<ListView ItemsSource="{Binding Path=Catalogs.Ortsteile}" 
          SelectedItem="{Binding Path=Schueler.Ortsteil}" 
          DisplayMemberPath="Bezeichnung"
          ToolTip="{Binding Path=Schueler.Ortsteil.Bezeichnung}" 
          SelectionMode="Single" 
          Height="80">
</ListView>

Dem DataContext des beinhaltenden UserControls ist ein ViewModel zugeordnet, das (u .a.) die Properties Catalogs und Schueler beinhaltet.

Ergebnis:
1. Alle Ortsteile werden - dargestellt durch die Bezeichnung - in der Liste angezeigt.
2. Im ToolTip (dient lediglich der Fehlersuche) wird der zu selektierende Ortsteil korrekt angezeigt. Das heißt also: Im ViewModel ist der Wert korrekt gesetzt worden und die Binding-Syntax stimmt prinzipiell..
3. Der Fehler: Es wird kein Item selektiert.

Ich habe die identische Vorgehensweise schon häufig erfolgreich angewandt. Ich stehe vollkommen auf dem Schlauch, warum das hier nicht funktionieren soll.

Vielleicht noch der Zusammenhang:
Ich habe in einem übergeordneten UserControl eine Liste von Schuelern. Wenn ich dort einen Schüler selektiere, wird über ein SelectionChangedCommand die Schueler-Property des im DataContext gebundenen ViewModels gesetzt. NotifyPropertyChanged wird aufgerufen.


Hat evtl. jemand einen Tipp, was ich noch kontrollieren kann?
private Nachricht | Beiträge des Benutzers
xxxprod
myCSharp.de - Experte

Avatar #avatar-2329.gif


Dabei seit:
Beiträge: 1420
Herkunft: Österreich\Wien

beantworten | zitieren | melden

Meine Vermutung: Ortsteil != Ortsteil aufgrund doppelt oder an unterschiedlichen Stellen erzeugter Objekte.

Wichtig ist hier die Gleichheit der Objekte: Wenn du die Objekte in deiner Liste und im Schüler nicht identisch sind, werden diese auch nicht automatisch selektiert.

Wenn das der Grund ist, kannst du entweder dafür sorgen, dass jeder Schüler nur Ortsteil Objekte aus dem bestehenden Ortsteile-Pool bekommt oder du überschreibst die Equals Methode und vergleichst intern auf Id oder sonst was.

Lg, XXX
private Nachricht | Beiträge des Benutzers
Paschulke
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

beantworten | zitieren | melden

Geil, das war's. Danke!!!
private Nachricht | Beiträge des Benutzers