J'ai une propriété J'ai choisi d'utiliser app.cs car il est global à l'ensemble du programme et il est utilisé pour le contrôle d'accès, mais toutes les alternatives sont les bienvenues. P> MAINTENANT ma question est de savoir comment puis-je lier Cette propriété de My UserControls et Windows. P> code> dans mon app.xaml.cs appelé
utilisateur code> qui contient les détails de l'utilisateur.
J'ai lu ici que vous ne pouvez pas avoir une propriété de dépendance sur l'application classe.
IsEnabled="{Binding Path=User, Converter={StaticResource hasAccessConverter}, ConverterParameter=Mid}"
3 Réponses :
J'ai lu ici que vous ne pouvez pas avoir une propriété de dépendance sur la classe d'applications. P>
En effet, vous ne pouvez pas, car
application code> n'hérite pas de
dépendencycybject code>. Cependant, il n'est pas nécessaire: seul la propriété cible em> d'une contrainte doit être une propriété de dépendance. P>
Si vous souhaitez lier à une propriété de votre classe d'applications, vous pouvez faire C'est comme ça: p>
xxx pré> blockQuote>
Juste une note que cela dans un Silverlight sans canal. x: statique et x: type n'existe pas dans le monde Silverlight.
N'oubliez pas d'implémenter inotifypertychanged pour voir les modifications apportées à cette propriété réfléchie sur l'interface utilisateur.
Dans ce qui précède, vous liez un bool code> à un utilisateur
code>, qui n'a aucun sens. Je suppose que vous voulez le lier à
utilisateur.isenabled code> - comment cela pourrait-il faire ça?
@DMITRINESTERUK, je suis d'accord, je suis d'accord, il ne semble pas avoir de sens ... Je viens de prendre le code de l'Op et je l'ai changé un peu, mais j'ai oublié le convertisseur en cours de route. En supposant qu'il existe une propriété utilisateur.EnEnabled, vous pouvez simplement utiliser chemin = utilisateur.isenabled code>; Sinon, vous pouvez utiliser un convertisseur comme dans le code de l'OP.
et pour y accéder de manière programmative en C #, vous pouvez le faire:
((App)Application.Current).YourMethod ((App)Application.Current).YourProperty
Vous pouvez lier de manière prétendante dans Silverlight à l'application.Current à l'aide d'un convertisseur personnalisé. P>
voir mon blog post ici p>
Link Lone est considéré comme une réponse médiocre car elle n'a pas de sens en soi et que la ressource cible n'est pas garantie d'être vivante à l'avenir. Il serait préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence.