Frage

Mein Ziel ist es, diese in XAML schreiben:

<Grid>
    <Rectangle Fill="AliceBlue"
            myCore:MyTimePanel.BeginningDate="03/03/2010"
            />
</Grid>

Problem: Silverlight XAML können keine Datetime aus einem String analysieren. Also zur Laufzeit habe ich die XamlParseException „nicht erstellen Datetime aus dieser Zeichenfolge“.

Wenn ich eine einfache DependencyProperty verwenden, füge ich einfach eine Typeconverter auf dem Getter / Setter und es funktioniert. Wie diese (Idee von hier ):

[TypeConverter(typeof(DateTimeTypeConverter))]
public DateTime MyDate
{
    get { return (DateTime)GetValue(MyDateProperty); }
    set { SetValue(MyDateProperty, value); }
}

Aber mit einem angebracht DP, gibt es keine Getter / Setter. Was kann ich tun, um die Zeichenfolge Datum in XAML?

in der Lage sein zu schreiben

Danke!

War es hilfreich?

Lösung

Aber angefügten Eigenschaften haben ein Get-Accessor - haben Sie versucht, setzt den Typ Konverter auf dem Get-Accessor ?

Sorry über die versionsspezifischen Link, es ist derjenige, der die relevanten Informationen enthält. Von dieser Seite:

3. Sie können eine Typ-Ebene Typeconverter auf der Typ-Attribut, das als Werttyp dient. Dies ermöglicht String-Konvertierung aller Werte des Typs. Weitere Informationen finden Sie Typeconverter und XAML.

4. Sie können eine Eigenschaft Ebene Typeconverter auf der Get-Accessor-Methode zuzuschreiben. Dies ermöglicht String-Konvertierung der angefügten Eigenschaft. Typeconverter auf die Anwendung Get Accessor-Methode anstatt das Set Accessor-Methode kann nicht intuitiv erscheinen, aber das ist, wo XAML-Prozessoren erwarten, dass die Typumwandlung Informationen (falls vorhanden) für eine angefügte Eigenschaft zu finden. Weitere Informationen finden Sie Typeconverter und XAML.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top