0
votes

Changer la valeur de TextBlock lorsqu'un attribut est mis à jour

J'ai un textblock dans un contrôle utilisateur et je souhaite définir le texte sur la valeur d'un attribut dans une classe. Est-il possible de modifier cette valeur lorsque l'attribut est modifié à partir d'un autre contrôle utilisateur différent?

in usercontrol1 xxx

la classe xxx

dans usercontrol2 xxx

wpf

0 commentaires

3 Réponses :


0
votes

Je recommanderais de lire sur la liaison, est méchant pour résoudre ces problèmes.

https://www.tutorialspoingnet.com/wpf/wpf_data_binding.htm P>

Vous pouvez le faire sur n'importe quelle classe mais pour la simplicité, nous le ferons sur le codeBeHind de votre fenêtre / usercontrol / quoi que ce soit p>

donc la première chose d'abord, vous devez dire à votre contrôle de suivre la propriété que vous souhaitez. P>

private string _propertyToUpdate;
public string PropertyToUpdate
{
    get{ return _propertyToUpdate; }
    set
    {
        _propertyToUpdate = value;
        OnPropertyChanged();
    }
}


0 commentaires

0
votes

Vous pouvez déclarer un délégué / événement sur votre classe SetStStest pour informer les clients des modifications des valeurs de propriété:

SetsTest.Text = "Different Text";


0 commentaires

0
votes

Les deux contrôles doivent partager le même dataContext code> car ils sont censés partager les mêmes données. Vous utilisez généralement reliure de données à Mettez à jour la vue (par exemple, un textblock code>) avec des données.

ViewModel.cs strong> p>

<Window>
  <Window.DataContext>
    <ViewModel />
  </Window.DataContext>

  <StackPanel>
    <!-- Since the DataContext is inherited (from Window element)
      the DataContext of both UserControl elements is still the ViewModel class 
    -->
    <UserControl1 />
    <UserControl2 />
  </StackPanel>
</Window>


0 commentaires