编辑:
我可以在xaml中使用STYLE编写以下代码吗?
cmbEnquiry.IsEnabled = (txtQuotationNo.IsEnabled && txtQuotationNo.IsReadOnly == false);
我不确定这是否会起作用,因为我不是在IDE前面,我试图从内存中编码,但如果没有别的,它将作为MultiBinding的一个例子。
在你的资源:
<local:AndNotConverter x:Key="AndNotConverter" />
<Style ...>
<Setter Property="IsEnabled">
<Setter.Value>
<MultiBinding Converter="{StaticResource AndNotConverter}">
<Binding ElementName="txtQuotationNo" Path="IsEnabled" />
<Binding ElementName="txtQuotationNo" Path="IsReadOnly" />
</MultiBinding>
</Setter.Value>
</Setter>
</Style
在你的代码后面:
public class AndNotConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return (bool)values[0] && !((bool)values[1]);
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
编辑:
刚刚验证了代码,并按预期工作