datatrigger binding zu viewmodel-Eigenschaft
Ich bin versucht, zu erstellen eine einfache style-Daten trigger, zieht es die bindenden Wert aus einem viewmodel-Eigenschaft, wie Sie unten sehen können:
<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>
Ich habe auch versucht, die Variante
Binding="{Binding Path=QuickDrawBarPinned}"
aber das ist immer noch nicht arbeiten, wenn ich die Taste drücken, ändert sich der QuickDrawBarPinned Eigenschaft, was mache ich falsch?
Habe ich implementiert die Eigenschaft als so:
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");
}
}
Dies ist die Methode, die die change-control -
public virtual void OnPropertyChanged(string propertyInfo)
{
App.Current.Dispatcher.BeginInvoke((Action)(() =>
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyInfo));
}
}
));
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie haben zu entfernen, um den lokalen Stil für Ihre Marge
Verpassen Sie möglicherweise die Meldung im Eigentum ändern. Bitte bestätigen Sie, ob Ihr viewmodel implementiert die INotifyPropertyChanged,