चूंकि आपको केवल तार्किक OR
की आवश्यकता है, इसलिए आपको अपनी प्रत्येक संपत्ति में केवल दो ट्रिगर की आवश्यकता है।
इस XAML का प्रयास करें:
<StackPanel>
<StackPanel.Resources>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=InputText, Path=Text}" Value="" >
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=MyIsEnabled}" Value="False" >
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Resources>
<StackPanel Orientation="Horizontal">
<Label>MyIsEnabled</Label>
<CheckBox IsChecked="{Binding Path=MyIsEnabled}" />
</StackPanel>
<TextBox Name="InputText">A block of text.</TextBox>
<Button Name="TheButton" Content="A big button.">
</Button>
</StackPanel>
मैं Window
वर्ग है जो एक DependencyProperty
MyIsEnabled
कहा जाता है के लिए DataContext
निर्धारित किया है। जाहिर है आपको अपने विशेष DataContext
के लिए संशोधित करना होगा।
public bool MyIsEnabled
{
get { return (bool)GetValue(IsEnabledProperty); }
set { SetValue(IsEnabledProperty, value); }
}
public static readonly DependencyProperty MyIsEnabledProperty =
DependencyProperty.Register("MyIsEnabled", typeof(bool), typeof(MainWindow), new UIPropertyMetadata(true));
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
आशा है कि मदद करता है:
यहाँ प्रासंगिक कोड-पीछे है!
आप इन दोनों संपत्तियों को संयुक्त कैसे चाहते हैं? अगर दोनों सच हैं या कोई सच है? – rrhartjr
एक मूल तर्क या शर्त –