CODEKILLER

반응형

▶ 아래의 컨버터는 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();
		}
	}
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band