Включить кнопку, когда установлен любой флажок в Windows - PullRequest
1 голос
/ 05 марта 2012

У меня есть 3 флажка на Windows. Я хочу включить кнопку, когда любой из этих флажков проверяется с помощью привязки. Я знаю такие советы:

<Button IsEnabled={Binding ElementName=CheckBox1,Path=IsChecked} />

но я хочу привязать кнопку к другим 2 флажкам.

Как это сделать?

1 Ответ

10 голосов
/ 05 марта 2012

Вы можете использовать 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
}

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...