11
votes

Trigger WPF Binding à la propriété MVVM

J'ai un datatemplate contenant une image que je veux être masqué si la valeur d'une propriété dans une vue de vue est vraie. Quelqu'un peut-il me dire pourquoi le XAML ci-dessous ne fonctionne pas? XXX


0 commentaires

4 Réponses :


3
votes

n'est-ce pas que xxx

?

Je suppose que vous utilisez inotifyproptychanged.

edit j'ai fait quelques Googling et je pense que vous devez utiliser une sorte de modèle afin de faire fonctionner la gâchette.

EG.: http://social.msdn.microsoft.com/forums/en-us/wpf/thread/ae2dbfb7-5dd6- 4352-BFA1-53634289329D

http: //www.thejoyofcode. com / help_why_cant_i_use_datatriggers_with_controls_in_wpf.astrols_in_wpf.aspx


2 commentaires

Oui, je mettez en œuvre inotifyPropertyChanged. Lorsque je change le setter selon ci-dessus, j'obtiens l'erreur de compilation suivante: impossible de résoudre la «visibilité» de la propriété de style. Vérifiez que le type de possession est la cibletype de style ou utilisez la syntaxe de classe.Property pour spécifier la propriété.


Merci pour ceux-ci, je vais passer par eux sous peu



6
votes

Essayez de supprimer la partie "image" à partir de la propriété = "image.visibilité" de sorte que vous aurez: xxx

et ajouter cibletype à votre style: xxx < / pré>


0 commentaires

5
votes

0 commentaires

2
votes

À mon avis, nous n'avons pas besoin d'utiliser des déclencheurs, avec seulement la liaison qui fonctionne bien. Pour effectuer une liaison à un modèle de propriété, vous pouvez utiliser BooleantOvisibilitéConverter Est déclaré comme suit: xxx pré>

et comment utiliser c'est simple, pointez sur la touche indiquée ci-dessus: p> xxx pré>

la propriété de The ViewModel: P>

private bool _hasError = false;
    public bool HasError
    {
        get { return !string.IsNullOrEmpty(_messageError); }
        set 
        {
            _hasError = value;                
            this.NotifyOfPropertyChange(() => this.HasError);
        }
    }


0 commentaires