La valeur d'extension statique ne peut pas être résolue
je suis confronté à quelques problèmes avec un WPF liant à une propriété statique. Dans mon application il y a une classe appelée Globals qui contient un statique propriété ThisAddIn. Cet objet me permet d'accéder à une propriété utilisateur qui est essentiellement ce que je veux utiliser dans ma reliure. Donc, mon XAML ressemble à ceci:
<TextBlock Text="{Binding Path=User.Name
, Source={x:Static Member=s:Globals.ThisAddIn}}" />
L'espace de noms s est déclarée en haut par la ligne suivante:
xmlns:s="clr-namespace:ConsoleApplication16.Model"
j'ai trouvé une tonne de différentes approches de la façon de se référer à la propriété statique dans XAML, mais aucun d'eux n'a fonctionné à l'exception de celui-ci, qui semble également le plus logique pour moi. Certains échantillons que j'ai trouvé, n'ont pas utilisé le chemin ou le membre du tout.
après quelques tests j'ai trouvé la bonne façon de le faire, c'est d'utiliser "x:Static Member" pour définir la classe et la propriété statique que vous voulez utiliser, tandis que Path Définit les bonnes propriétés à l'intérieur de cet objet, tout comme une liaison normale le ferait.
Bien que cette solution se compile sans aucune plainte, une XAMLParseException surgit directement me disant que le la valeur D'extension statique ne peut pas être résolue à une énumération, un champ statique, ou une propriété statique.
2 réponses
Assurer La Globalité.Cetaddin est public. Vous pouvez également obtenir ce si vous utilisez un fichier de ressources, auquel cas vous devez également vous assurer le modificateur d'accès est fixé au public.
dans le projet de bibliothèque de sortie, vous devriez vous assurer que les ressources.le générateur de fichier resx a été modifié comme PublicResXFileCodeGenerator au lieu de ResXFileGodeGenerator par défaut.
remplacer ce qui suit par...
celui-ci