▶ 아래의 컨버터는 Boolean형식의 MultiBinding 항목을 이용하여 특정 Control 의 Visibility 처리하는 예제입니다.
▶우선 .xaml에서의 코드입니다.
테스트로 Boolean 형식의 Binding을 두 가지(IsAMode, IsBMode)를 넣었습니다.
<Border x:Name="TestBorder" Width="200" Height="200">
<Border.Visibility>
<MultiBinding Converter="{StaticResource MultiBooleanToVisibilityConverter}">
<Binding Path="IsAMode" />
<Binding Path="IsBMode" />
</MultiBinding>
</Border.Visibility>
</Border>
▶ Converter 클래스입니다.
public class MultiBooleanToVisibilityConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
bool value = true;
int length = values.Length;
// MultiBinding으로 입력되는 항목의 & 조건으로 Visibility처리하기
for (int i = 0; i < length; i++)
{
if (values[i] is int)
{
value &= ((bool) (values[i]));
}
}
if (value)
return Visibility.Visible;
return Visibility.Collapsed;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}