Question

Mon but est de pouvoir écrire ceci dans XAML:

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

Problème: Silverlight XAML ne peut pas analyser un DateTime d'une chaîne. Donc, lors de l'exécution je le XamlParseException « ne peut pas créer un DateTime de cette chaîne ».

Quand j'utilise un DependencyProperty simple, j'ajouter simplement une TypeConverterAttribute sur le getter / setter et cela fonctionne. Vous aimez cette (idée de ):

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

Mais avec attached DP, il n'y a pas getter / setter. Que puis-je faire pour être en mesure d'écrire la date de chaîne en XAML?

Merci!

Était-ce utile?

La solution

Mais propriétés attachées ont un accesseur Get - avez-vous essayé mettre le convertisseur de type sur la accesseur Get ?

Désolé le lien spécifique à la version, il est celui qui contient les informations pertinentes. A partir de cette page:

  

3. Vous pouvez attribuer un TypeConverter niveau du type du type qui sert de type de valeur. Cela permet la conversion de chaînes de toutes les valeurs du type. Pour plus d'informations, voir TypeConverters et XAML.

     

4. Vous pouvez attribuer un TypeConverter-niveau de la propriété sur la méthode accesseur. Cela permet la conversion de chaîne de la propriété attachée. L'application TypeConverterAttribute à la accesseur Get méthode plutôt que la méthode Set accesseur peut sembler non intuitive, mais qui est là où les processeurs XAML attendent de trouver les informations de conversion de type (le cas échéant) pour une propriété attachée. Pour plus d'informations, voir TypeConverters et XAML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top