Date actuelle dans le XAML Silverlight TextBlock
Je viens de Flex, où vous pouvez faire à peu près quelque chose à l'intérieur d'accolades. Je suis en train d'essayer d'obtenir un TextBlock
pour afficher la Date du jour et de l'Heure sans codage en C#. J'ai essayé beaucoup de différentes variations de ce qui suit avec pas de chance.
TextBlock Text="{Source=Date, Path=Now, StringFormat='dd/MM/yyyy'}"
Je sais que je pourrais probablement juste de définir une propriété MyDate
et de se lier à ça mais pourquoi je ne peux pas lier directement à la DateTime.Now
propriété?
OriginalL'auteur Tony Smith | 2010-03-12
Vous devez vous connecter pour publier un commentaire.
De liaison dans Silverlight nécessite une Source d'objet ou un objet de Dépendance. À partir de cette source objet que vous pouvez lier des Propriétés (d'où, par définition, vous sont contraignantes pour les membres de l'instance) ou les Propriétés de Dépendance.
Depuis
DateTime.Now
est une propriété statique de vous ne peut pas se lier à elle dans Silverlight directement, d'où un code est nécessaire. La prochaine meilleure chose est d'utiliser le code pour:-Par conséquent, nous pouvons analyser que nous avons besoin de deux choses.
Pour traiter le premier point, je voudrais créer un
StaticSurrogate
classe, où je voudrais créer des propriétés d'une instance pour les propriétés statiques que nous avons besoin de l'accès à:-Maintenant nous avons besoin d'un moyen de formater une Date de temps. Une valeur converter est le bon outil pour ce travail, l'emprunt fortement à partir de cette Tim Heuer Blog :-
Avec ces deux classes en place, nous pouvons maintenant faire le reste en Xaml, nous avons d'abord besoin d'instances de ces classes dans nos ressources:-
Maintenant, nous pouvons associer le
TextBlock
:-Noter que cette approche présente les avantages suivants:-
StaticSurrogate
classe.OriginalL'auteur AnthonyWJones
Même si vous pouvez déclarer le type DateTime.Maintenant dans Silverlight de XAML (puisque vous pouvez en WPF - http://soumya.wordpress.com/2010/02/12/wpf-simplified-part-11-xaml-tricks/), vous avez le problème que votre temps ne sera pas mise à jour. Si vous utilisez un local de la minuterie que les mises à jour sur le deuxième, vous pouvez vous assurer que votre temps sera mis à jour aussi bien.
Déclarer une instance de cette dans le code xaml ala:
et l'utilisation de la liaison pour s'assurer que votre temps est toujours visible.
OriginalL'auteur nyxtom
C'est pourquoi WPF est génial.
OriginalL'auteur knockando