Как связать свойство в изгибе или из двух значений?

StackOverflow https://stackoverflow.com//questions/9710151

Вопрос

В настоящее время, когда я должен сделать или из двух значений в свойство IseNiabled элемента управления, с помощью невидимого управления контейнера (я использую границу) и устанавливая файл элемента управления и одним из контейнера.

.

Есть ли лучший подход?Если нет, какой самый легкий контроль для этого?

Спасибо заранее.

Это было полезно?

Решение

Если IsEnabled установлен через привязку, вы можете использовать Multibinding в сочетании с Многотонный преобразователь.

Другие советы

Вы можете использовать такой конвертер:

public class BooleanOrConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        foreach (object value in values)
        {
            if ((value is bool) && (bool)value == true)
            {
                return true;
            }
        }
        return false;
    }
    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotSupportedException("BooleanOrConverter is a OneWay converter.");
    }
}
.

И вот как вы его использовали:

<myConverters:BooleanOrConverter x:Key="BooleanOrConverter" />
...
<ComboBox Name="MyComboBox">
  <ComboBox.IsEnabled>
    <MultiBinding Converter="{StaticResource BooleanOrConverter}">
      <Binding ElementName="SomeCheckBox" Path="IsChecked" />
      <Binding ElementName="AnotherCheckbox" Path="IsChecked"  />
    </MultiBinding>
  </ComboBox.IsEnabled>
</ComboBox>
.

может использовать MultiBinding спреобразователь, который или значения передаются.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top