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
Wie kann ich eine ObservableCollection an eine CheckBox binden?
Platoon
myCSharp.de - Member



Dabei seit:
Beiträge: 46
Herkunft: NRW

Themenstarter:

Wie kann ich eine ObservableCollection an eine CheckBox binden?

beantworten | zitieren | melden

Hallo zusammen,

wünsche frohe Weihnachten gehabt zu haben.

Ich habe derzeit ein kleines Problem und weiß nicht wie ich es lösen kann.

Ich habe ein ViewModel (settingsModel). Dieses Model dient zum einen einem Window als Quelle und zum anderen auch entsprechenden Pages.

Wenn ich nun meine Page pgUserRights in einen Frame auf dem Window lade, dann setze ich den DataContext auf ein entsprechendes Objekt vom Typ settingsModel.

Bei meinem Problem ist es egal ob ich ein eigenes Objekt innerhalb der Page erzeuge oder ob ich das bereits bestehende aus dem Window als Parameter mitgebe.

Die CheckBox erhält kein Value aus einer ObservableCollection innerhalb des Models.
Wenn ich nun das Property, sprich die ObservableCollection direkt als DataContext angebe, dann werden die Werte entsprechend gesetzt.

Das hilft mir aber nicht viel weil ich die Commands etc. aus dem Model nutzen möchte.

Ich hab das über die RelativeSources schon probiert, hat aber nichts geholfen. Irgendwo scheine ich einen Denkfehler zu haben. Hat jemand von euch schon mal so einen Fall gehabt? Die Meldung im Debugger lautet:
Fehler
Die Eigenschaft "CanAddBanks" wurde im Objekt vom Typ "ObservableCollection`1" nicht gefunden.
Datenkontext: SettingsModel - Bindungspfad GroupRights.CanAddBanks - Ziel CheckBox.IsChecked - Zieltyp Nullable`1

Besten Dank für einen Denkanstoß.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Platoon am .
.....an unhandled exception is the first way to think about your pattern of programming....
.....nur weil ich nicht weiß was dort passiert, bedeutet es nicht, dass ich nicht weiß, wie man es lösen kann - aber das ist wahrscheinlich....
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4001

beantworten | zitieren | melden

Du scheinst Liste und enthaltenes Objekt vertauscht zu haben.
GroupRights ist wohl bei dir die ObservableCollection. Diese hat aber keine Eigenschaft namens CanAddBanks, sondern (wohl) nur die enthaltenen Objekte. Du benötigst also ein konkretes Objekt (mittels eines Zugriffs auf einen Index der ObservableCollection).
private Nachricht | Beiträge des Benutzers
Platoon
myCSharp.de - Member



Dabei seit:
Beiträge: 46
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

Das dürfte die Sache auf den Punkt treffen, ich hätte jetzt einen Ansatz:

Ich lasse mir ein Grid Anzeigen von dessen Elementen in ich mir das jeweilige Value anzeigen lassen. Ergibt vermutlich auch Sinn da das Ganze ja auch mehr als nur ein Gruppenrecht erhalten kann.

Danke - das wird's gewesen sein.

Was sich mir aber noch nicht ganz erschließt ist - warum geht's, wenn ich die CheckBox direkt an das Property binde? Nimmt dann der Kontext immer das erste Value oder wie verhält sich das?

Das wäre ja blöd oder kann man auch über XAML dann die Collection ansteuern? Das wäre definitiv charmant.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Platoon am .
.....an unhandled exception is the first way to think about your pattern of programming....
.....nur weil ich nicht weiß was dort passiert, bedeutet es nicht, dass ich nicht weiß, wie man es lösen kann - aber das ist wahrscheinlich....
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4001

beantworten | zitieren | melden

Dazu müßtest du mal den XAML-Code zeigen.
private Nachricht | Beiträge des Benutzers