के रूप में आप नीचे देख सकते मैं, एक सरल शैली डेटा ट्रिगर है कि यह एक viewmodel संपत्ति से मूल्य बाध्यकारी है खींचती है बनाने के लिए कोशिश कर रहा हूँ: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