111,098
社区成员




<Button x:Name="btnLogin">
<i:Interaction.Triggers>
<ei:DataTrigger Binding="{Binding ElementName=chkTypeServer,Path=IsChecked}" Comparison="Equal" Value="True">
<ei:ChangePropertyAction PropertyName="IsEnabled" Value="True"></ei:ChangePropertyAction>
</ei:DataTrigger>
<ei:DataTrigger Binding="{Binding ElementName=chkTypeClient,Path=IsChecked}" Comparison="Equal" Value="True">
<ei:ChangePropertyAction PropertyName="IsEnabled" Value="True"></ei:ChangePropertyAction>
</ei:DataTrigger>
</i:Interaction.Triggers>
连接
</Button>
if(chkTypeServer.IsChecked = true)
{
btnLogin.IsEnabled = true;
}
if(chkTypeClient.IsChecked = true)
{
btnLogin.IsEnabled = true;
}
if(chkTypeServer.IsChecked = true || chkTypeClient.IsChecked = true)
{
btnLogin.IsEnabled = true;
}
else
{
btnLogin.IsEnabled = false;
}
<CheckBox Name="chkTypeServer">Server</CheckBox>
<CheckBox Name="chkTypeClient">Client</CheckBox>
<Button x:Name="btnLogin">
<Button.Resources>
<local:OrConverter x:Key="Or" />
</Button.Resources>
<Button.IsEnabled>
<MultiBinding Converter="{StaticResource Or}">
<Binding ElementName="chkTypeServer" Path="IsChecked" />
<Binding ElementName="chkTypeClient" Path="IsChecked" />
</MultiBinding>
</Button.IsEnabled>
连接
</Button>
public class OrConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return values.OfType<bool>().Any(x => x);
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
if (chkTypeServer.IsChecked == true || chkTypeClient.IsChecked == true)
{
btnLogin.IsEnabled = true;
}
if (chkTypeServer.IsChecked == false && chkTypeClient.IsChecked == false)
{
btnLogin.IsEnabled = false;
}
<Window.Resources>
<ei:ConditionBehavior x:Key="ServerOrClientChecked" x:Shared="False">
<ei:ConditionalExpression ForwardChaining="Or">
<ei:ComparisonCondition LeftOperand="{Binding IsChecked, ElementName=chkTypeServer}"
Operator="Equal"
RightOperand="True"/>
<ei:ComparisonCondition LeftOperand="{Binding IsChecked, ElementName=chkTypeClient}"
Operator="Equal"
RightOperand="True"/>
</ei:ConditionalExpression>
</ei:ConditionBehavior>
<ei:ConditionBehavior x:Key="ServerAndClientNotChecked" x:Shared="False">
<ei:ConditionalExpression ForwardChaining="And">
<ei:ComparisonCondition LeftOperand="{Binding IsChecked, ElementName=chkTypeServer}"
Operator="Equal"
RightOperand="False"/>
<ei:ComparisonCondition LeftOperand="{Binding IsChecked, ElementName=chkTypeClient}"
Operator="Equal"
RightOperand="False"/>
</ei:ConditionalExpression>
</ei:ConditionBehavior>
</Window.Resources>
<StackPanel>
<CheckBox Name="chkTypeServer">Server</CheckBox>
<CheckBox Name="chkTypeClient">Client</CheckBox>
<Button x:Name="btnLogin">
<i:Interaction.Triggers>
<ei:PropertyChangedTrigger Binding="{Binding IsChecked, ElementName=chkTypeServer}">
<i:Interaction.Behaviors><StaticResource ResourceKey="ServerOrClientChecked" /></i:Interaction.Behaviors>
<ei:ChangePropertyAction PropertyName="IsEnabled" Value="True" />
</ei:PropertyChangedTrigger>
<ei:PropertyChangedTrigger Binding="{Binding IsChecked, ElementName=chkTypeClient}">
<i:Interaction.Behaviors><StaticResource ResourceKey="ServerOrClientChecked" /></i:Interaction.Behaviors>
<ei:ChangePropertyAction PropertyName="IsEnabled" Value="True" />
</ei:PropertyChangedTrigger>
<ei:PropertyChangedTrigger Binding="{Binding IsChecked, ElementName=chkTypeServer}">
<i:Interaction.Behaviors><StaticResource ResourceKey="ServerAndClientNotChecked" /></i:Interaction.Behaviors>
<ei:ChangePropertyAction PropertyName="IsEnabled" Value="False" />
</ei:PropertyChangedTrigger>
<ei:PropertyChangedTrigger Binding="{Binding IsChecked, ElementName=chkTypeClient}">
<i:Interaction.Behaviors><StaticResource ResourceKey="ServerAndClientNotChecked" /></i:Interaction.Behaviors>
<ei:ChangePropertyAction PropertyName="IsEnabled" Value="False" />
</ei:PropertyChangedTrigger>
</i:Interaction.Triggers>
连接
</Button>
</StackPanel>