Laden...

Problem mit ComboBox-Binding

Erstellt von Lector vor 13 Jahren Letzter Beitrag vor 13 Jahren 889 Views
L
Lector Themenstarter:in
862 Beiträge seit 2006
vor 13 Jahren
Problem mit ComboBox-Binding

Hallo,

Ich habe ein kleines DatePicker-Control geschrieben mit dem man ein Datum auswählen kann. Ich weis dass es bereits einige Calendar-Controls im Internet gibt. Da ich jedoch .NET 3.5 nutze und nur eine einfache Darstellung über 3 ComboBoxen möchte habe ich selbst ein Control entworfen.

Im Control selbst sind folgende Eigenschaften als DependnecyProperties definiert:

Date (nullable DateTime)

Day
Month
Year
(sind 0 wenn Date null ist)

DayList
MonthList
YearList
(Auflistung für die ComboBox)

Im ControlTemplate definiere ich die ComboBoxen für Tag/Monat/Jahr so:


<ComboBox Name="cboDay"
SelectedItem="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Day,Mode=TwoWay}"
ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent},Path=DayList}"/>

Wenn Anfangs kein Datum gesetzt ist sind die ComboBoxen leer. Wird ein Tag ausgewählt steht der Wert im Control drin (alles passt). Wir aber das Datum auf null gesetzt habe ich das Problem dass sich die ComboBoxen nicht aktualisieren obwohl Day/Month/Year auf 0 gesetzt sind. Platziere ich im ControlTemplate einen TextBlock der diese Werte anzeigt (mit dem gleichen Binding wie bei der ComboBox) sehe ich auch 0. Nur bei der ComboBox scheint sich das Binding nicht zu aktualisieren. Wäre toll wenn jemand einen Lösungsansatz hierfür hätte.

L
Lector Themenstarter:in
862 Beiträge seit 2006
vor 13 Jahren

Ich habe gerade herausgefunden dass es daran liegt dass der lokale DepdendencyProperty-Wert von SelectedIndex gesetzt ist. Wenn ich vom Code aus auf die ComboBoxen zugreife und ClearValue(Selector.SelectedIndex) aufrufe aktualisiert sich der Wert. Auch wenn das keine saubere Lösung ist.