datatrigger de liaison à viewmodel de la propriété
Je suis en train de créer un style simple des données de déclenchement qui la tire de force obligatoire à partir d'un viewmodel de la propriété, comme vous pouvez le voir ci-dessous:
<StackPanel Name="stackTextPanel" Orientation="Horizontal" Margin="0,8,0,0">
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Style.Triggers>
<DataTrigger Binding="{Binding QuickDrawBarPinned}" Value="False">
<Setter Property="Margin" Value="0,8,0,0" />
</DataTrigger>
<DataTrigger Binding="{Binding QuickDrawBarPinned}" Value="True">
<Setter Property="Margin" Value="0,48,0,0" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
J'ai aussi essayé la variante
Binding="{Binding Path=QuickDrawBarPinned}"
mais cela ne fonctionne toujours pas quand j'appuie sur le bouton qui modifie l' QuickDrawBarPinned bien ce que je fais mal?
J'ai mis en place la propriété de la manière suivante:
private bool _quickDrawBarPinned = false;
///<summary>
///Indicates if the Quick Draw Bar is pinned (stuck) or unpinned (retractable)
///</summary>
public bool QuickDrawBarPinned
{
get { return _quickDrawBarPinned; }
set
{
_quickDrawBarPinned = value;
OnPropertyChanged("QuickDrawBarPinned");
}
}
C'est la méthode qui met en œuvre le changement de contrôle de la
public virtual void OnPropertyChanged(string propertyInfo)
{
App.Current.Dispatcher.BeginInvoke((Action)(() =>
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyInfo));
}
}
));
}
OriginalL'auteur MikeDub | 2013-06-28
Vous devez vous connecter pour publier un commentaire.
Je pense que vous devez retirer pour le style local pour votre marge
OriginalL'auteur blindmeis
Vous risquez de manquer la Notification de changement de propriété. Merci de confirmer si votre viewmodel implémenter INotifyPropertyChanged,
OriginalL'auteur Jawahar