iSenabled 속성을 And 2 값으로 바인딩하는 방법은 무엇입니까?
문제
현재 보이지 않는 컨테이너 컨트롤을 사용하여 컨트롤의 IsEnabled 속성에서 2 개의 값을 만들어야합니다 (테두리를 사용하여) 및 컨트롤의 isenable 및 컨테이너 중 하나를 설정합니다.
더 나은 접근이 있습니까?그렇지 않은 경우,이 작업을 수행하기위한 가장 가벼운 컨트롤은 무엇입니까?
미리 감사드립니다.
해결책
Binding을 통해 IsEnabled
가 설정된 경우, 다중 값 변환기와 함께 멀티 바인딩 .
다른 팁
다음과 같이 변환기를 사용할 수 있습니다 :
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
변환기가 전달 된 값입니다.
제휴하지 않습니다 StackOverflow