J'essaye de lier une propriété statique d'une classe différente à la propriété Text d'un TextBlock et peut faire fonctionner la liaison, mais il n'y a pas de mise à jour de la propriété Text lorsque la valeur de la propriété statique a changé. J'ai lu que je ne peux pas utiliser INotifyPropertyChanged parce que la propriété est statique et a vu un certain nombre de solutions qui suggèrent d'utiliser une propriété de dépendance. Je suis très nouveau à C# et ne comprends pas vraiment comment utiliser les propriétés de dépendance, mais j'ai fait quelques tentatives qui ne semblent pas fonctionner pour deux raisons. 1. Ma propriété statique possède un getter et un setter personnalisés et 2. La propriété static est utilisée dans un certain nombre de méthodes statiques que je n'arrive pas à comprendre pour faire du travail en utilisant une propriété Dependency. Je ne sais pas comment utiliser un getter et un accesseur personnalisés lors de l'utilisation d'une propriété Dependency ou si cela peut même être fait ou comment continuer à utiliser la propriété statique dans les méthodes statiques après que je l'ai modifiée en propriété Dependency.Comment lier en XAML à une propriété statique?
Voici le code actuel de la propriété statique:
public class Helper
{
public static string Token
{
get
{
using (StreamReader streamReader = new StreamReader("Token.ini"))
{
return streamReader.ReadLine();
}
}
set
{
using (StreamWriter streamWriter = new StreamWriter("Token.ini"))
{
streamWriter.WriteLine(value);
}
}
}
public static MethodThatUsesToken(){}
public static OtherMethodThatUsesToken(){}
Et ici le XAML actuel pour la liaison qui fonctionne, mais ne met pas à jour:
<Window.Resources>
<local:Helper x:Key="helper"/>
</Window.Resources>
<TextBlock Text="{Binding Source={StaticResource helper},Path=Token Converter={StaticResource NameConverter}}"/>
J'apprécie vraiment toute aide!
Pourquoi le rendre statique? Pourquoi ne pas construire le lecteur/graveur de jetons dans une classe complète, et en exposer une instance sur votre modèle de vue (via une propriété 'string Token')? Alors vous auriez un moyen pratique de réutiliser ce code si vous avez un autre fichier de jeton ... –