Laden...

[erledigt] Datenbindung des SelectedItems funktioniert nicht.

Erstellt von Paschulke vor 12 Jahren Letzter Beitrag vor 12 Jahren 937 Views
P
Paschulke Themenstarter:in
69 Beiträge seit 2011
vor 12 Jahren
[erledigt] Datenbindung des SelectedItems funktioniert nicht.

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?

1.378 Beiträge seit 2006
vor 12 Jahren

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

P
Paschulke Themenstarter:in
69 Beiträge seit 2011
vor 12 Jahren

Geil, das war's. Danke!!!