我試圖創建拉它從視圖模型屬性綁定值的簡單風格數據觸發,你可以看到如下:datatrigger結合的ViewModel財產
<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>
我也曾嘗試變種
Binding="{Binding Path=QuickDrawBarPinned}"
但這仍然不起作用當我按下按鈕,更改QuickDrawBarPinned屬性我做錯了什麼?
我已經實現了性能像這樣:
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");
}
}
這是實現變更控制
public virtual void OnPropertyChanged(string propertyInfo)
{
App.Current.Dispatcher.BeginInvoke((Action)(() =>
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyInfo));
}
}
));
}
賓果,謝謝!我認爲這是兩個幫助我的答案的組合,我忘記了首先包含更改通知,因爲我之前已嘗試刪除當地保證金屬性並且它不起作用。所以通過實施這兩個答案我解決了這個問題,謝謝! – MikeDub