Ich erstelle ein Benutzersteuerelement, um einen dreimonatigen Kalender anzuzeigen. Das Steuerelement basiert auf dem WPF-Kalendersteuerelement (WPF Toolkit 2009-06), und ich möchte mehrere Eigenschaften des Kalenders durch entsprechende Eigenschaften meines Benutzersteuerelements übergeben. Die Benutzersteuerungseigenschaften sind als Abhängigkeitseigenschaften eingerichtet, und ihre zugrunde liegenden Typen stimmen mit den Typen der Kalendereigenschaften überein. Hier ist mein Markup:
%Vor% Alle Eigenschaften binden ohne Probleme, außer für die Eigenschaft SelectedDates
. Ich bekomme den folgenden Fehler bei der Bindung:
Die Eigenschaft 'SelectedDates' ist schreibgeschützt und kann nicht über Markup festgelegt werden.
Ich vermute, dass es daran liegt, dass die SelectedDates
-Eigenschaft eine Sammlung ist, aber ich bin mir nicht sicher, wie ich das Problem beheben kann. Kann mir jemand die Ursache des Problems erklären und eine Lösung vorschlagen? Danke für Ihre Hilfe.
Wenn ich Sie gut verstehe, haben Sie Abhängigkeitseigenschaften in Ihrem Code hinter dieser Übereinstimmung im Namen und geben Sie die Eigenschaften der Kalendersteuerelemente in Ihrem Benutzersteuerelement ein. Sie versuchen, die SelectedDates-Auflistung der verschiedenen Kalendersteuerelemente der Dependency-Eigenschaft desselben Namens in Ihrem Code hinter zuzuordnen.
Sie können dies einfach durch eine Codezeile tun:
this.SelectedDates=SlaveCalendar1.SelectedDates
In einem geeigneten EventHandler, der ausgelöst wird, wenn ein ausgewähltes Datum hinzugefügt wird.
Auch wenn Sie die Bindung auf OneWayToSource
setzen, ist das SelectedDates=
-Code eine Zuweisung. Da die SelectedDates-Eigenschaft keinen Setter hat, ist es nicht möglich, diesen Code zu schreiben.
Hier finden Sie einen Link in der Dokumentation zu Calendar Control
Tags und Links wpf wpf-controls readonly dependency-properties