我在Windows上有3个CheckBoxes。我想启用Button当使用绑定检查任何此CheckBox时。我知道这样的提示:
<Button IsEnabled={Binding ElementName=CheckBox1,Path=IsChecked} />
但我希望按钮绑定到其他2个CheckBox。
怎么做?
答案 0 :(得分:10)
您可以将MultiBinding与MultiValueConverter一起使用
<Button>
<Button.IsEnabled>
<MultiBinding Converter={StaticResource MultiCheckedToEnabledConverter}>
<Binding ElementName="CheckBox1" Path="IsChecked" />
<Binding ElementName="CheckBox2" Path="IsChecked" />
<Binding ElementName="CheckBox3" Path="IsChecked" />
</MultiBinding>
</Button.IsEnabled>
</Button>
public class MultiCheckedToEnabledConverter : IMultiValueConverter
{
#region Implementation of IMultiValueConverter
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) {
if (values != null) {
return values.OfType<bool>().Any(b => b);
}
return false;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) {
return new object[] {};
}
#endregion
}
希望这会有所帮助