Pour une raison quelconque, je suis vraiment aux prises avec cela. Je suis nouveau à wpf et je n'arrive pas à trouver l'information dont j'ai besoin pour comprendre ce problème simple. Je tente de lier une zone de texte à une chaîne, la sortie de l'activité de programmes. J'ai créé une propriété pour la chaîne, mais lorsque la propriété change, la zone de texte ne le fait pas. J'ai eu ce problème avec une liste, mais j'ai créé un répartiteur qui actualise la liste.Les liens de données ne semblent pas se rafraîchir
Je dois manquer un point important, car je pensais que l'un des avantages de l'utilisation de wpf n'était pas de devoir mettre à jour les contrôles manuellement. J'espère que quelqu'un peut m'envoyer dans la bonne direction.
dans windowMain.xaml.cs
private string debugLogText = "initial value";
public String debugLog {
get { return debugLogText; }
set { debugLogText = value; }
}
dans windowMain.xaml
x:Name="wndowMain"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
<TextBox Name="txtDebug" Text="{Binding ElementName=wndowMain, Path=debugLog}" />
+1 pour la classe ObservableObject! –
Pourquoi ce travail supplémentaire avec le gestionnaire var = PropertyChanged ;? Sécurité du filetage? –
Ouais c'est juste une habitude que j'ai ramassée. Même s'il est assez improbable que vous souleviez/vous abonniez à cela à partir de différents sujets, il n'y a pas grand mal à cela et c'est devenu quelque chose d'un réflexe. D'autres ont montré que vous pouvez éliminer la vérification en initialisant l'événement comme: événement public PropertyChangedEventHandler PropertyChanged = delegate {}; Mais ce n'est pas seulement lent, il se sent piraté. :) – Josh