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
CheckBox an Bool-Variable binden
CWolle
myCSharp.de - Member

Avatar #avatar-4065.jpg


Dabei seit:
Beiträge: 57
Herkunft: Süddeutschland

Themenstarter:

CheckBox an Bool-Variable binden

beantworten | zitieren | melden

ich möchte einige WPF-Elemente an Werte aus einem Array binden. Mit TextBox und DatePicker klappt auch alles, aber ich komme einfach nicht drauf, wie ich eine CheckBox an einen Bool-Wert binden kann.
Ich habs schon mit DataContext, Checked und IsChecked probiert! Die CheckBox bleibt immer leer - wie kann man eine Bindung an eine Boolean-Variable realisieren?
OO gibts seit Platon - hatte der auch C#?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.306

beantworten | zitieren | melden

Und Google oder die Dokumentation hat dazu nichts ausgespuckt?

IsSelected IsChecked ist die richtige Eigenschaft.
private Nachricht | Beiträge des Benutzers
p!lle
myCSharp.de - Member

Avatar #avatar-3556.jpg


Dabei seit:
Beiträge: 1.040

beantworten | zitieren | melden

IsChecked funktioniert einwandfrei.
<CheckBox Grid.Row="0" IsChecked="{Binding TrueValue}" />
<CheckBox Grid.Row="1" IsChecked="{Binding FalseValue}" />
<CheckBox Grid.Row="2" IsChecked="{Binding NullableValue}" IsThreeState="True" />

public TestViewModel()
{
	TrueValue = true;
	FalseValue = false;
	NullableValue = null;
}

public bool FalseValue...

public bool? NullableValue...

public bool TrueValue...

Du kämpfst wahrscheinlich an anderer Stelle mit Binding-Fehlern. Informationen dazu findest du im Output.
Zitat von Abt
IsSelected ist die richtige Eigenschaft.

Nö, diese Eigenschaft gibt es bei einer WPF-Checkbox nicht. :tongue:
Attachments
private Nachricht | Beiträge des Benutzers
CWolle
myCSharp.de - Member

Avatar #avatar-4065.jpg


Dabei seit:
Beiträge: 57
Herkunft: Süddeutschland

Themenstarter:

beantworten | zitieren | melden

Danke für den Hinweis, ich habs weiter probiert und die Lösung gefunden:

die Bindung war schon zu Beginn korrekt erfolgt (Abfrage mit Debug), aber ich musste nochmal 'InitializeComponent()' aufrufen, damit die Ansicht der anfangs leeren CheckBox aktualisiert wurde.
OO gibts seit Platon - hatte der auch C#?
private Nachricht | Beiträge des Benutzers
p!lle
myCSharp.de - Member

Avatar #avatar-3556.jpg


Dabei seit:
Beiträge: 1.040

beantworten | zitieren | melden

Ähm, was?

Kannst du mal bitte zeigen, was du da machst?
InitializeComponent(); ist nur einmal im Konstruktor im Code-Behind notwendig.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von p!lle am .
private Nachricht | Beiträge des Benutzers
CWolle
myCSharp.de - Member

Avatar #avatar-4065.jpg


Dabei seit:
Beiträge: 57
Herkunft: Süddeutschland

Themenstarter:

beantworten | zitieren | melden

ich habe dem DockPanel-Bereich den Frame (mit der CheckBox) nochmals erneut zugewiesen, damit sich die Ansicht aktualisiert. So wird ja der Frame erneut geladen - was InitializeComponent() ausführt.


 Page p = new FrameX();
 haupt = p;
 // Checkbox in p aktualisiert, und jetzt die Page erneut zugewiesen
 haupt = p; 
 
Ich dachte, dass Änderungen an der Ausgabe automatisch angezeigt werden, aber es klappte doch nicht. Erst als ich dann Frame p erneut zuwies, wurde die Ansicht aktualisiert
OO gibts seit Platon - hatte der auch C#?
private Nachricht | Beiträge des Benutzers
Deaktiviertes Profil
myCSharp.de - Member



Dabei seit:
Beiträge: 985

beantworten | zitieren | melden

Zeige doch bitte das ViewModel und die View.

Zu diesen Code-Fragmenten kann man gar nichts sagen, ausser, du musst da irgendwas falsch machen
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5.655
Herkunft: Leipzig

beantworten | zitieren | melden

Hi CWolle,
Zitat von CWolle
wie kann man eine Bindung an eine Boolean-Variable realisieren?

Gar nicht! Man kann immer nur an Eigenschaften binden, nicht an Variablen. Da du am Rande erwähnst, daß die Werte in einem Array liegen, hilft dir evtl. [Artikel] MVVM und DataBinding weiter (Strg-F: ItemsControl bzw. ObservableCollection).
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers