■ IValueConverter 인터페이스를 구현해 진리 값 반전 변환자를 사용하는 방법을 보여준다.
----------------------------------------------------------------------------------------------------
using System.Globalization;
/// <summary>
/// 진리 값 반전 변환자
/// </summary>
public class InverseBooleanConverter : IValueConverter
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 변환하기 - Convert(sourceValue, targetType, parameter, cultureInfo)
/// <summary>
/// 변환하기
/// </summary>
/// <param name="sourceValue">소스 값</param>
/// <param name="targetType">타겟 타입</param>
/// <param name="parameter">매개 변수</param>
/// <param name="cultureInfo">문화 정보</param>
/// <returns>변환 값</returns>
public object Convert(object sourceValue, Type targetType, object parameter, CultureInfo cultureInfo)
{
if(sourceValue is bool?)
{
bool? boolNullable = (bool?)sourceValue;
return boolNullable.HasValue ? !boolNullable.Value : true;
}
if(sourceValue.GetType() == typeof(bool))
{
return !((bool)sourceValue);
}
return true;
}
#endregion
#region 역변환하기 - ConvertBack(sourceValue, targetType, parameter, cultureInfo)
/// <summary>
/// 역변환하기
/// </summary>
/// <param name="sourceValue">소스 값</param>
/// <param name="targetType">타겟 타입</param>
/// <param name="parameter">매개 변수</param>
/// <param name="cultureInfo">문화 정보</param>
/// <returns>역변환 값</returns>
public object ConvertBack(object sourceValue, Type targetType, object parameter, CultureInfo cultureInfo)
{
if(sourceValue == null)
{
return true;
}
if(sourceValue is bool?)
{
bool? boolNullable = (bool?)sourceValue;
return boolNullable.HasValue ? !boolNullable.Value : true;
}
if(sourceValue.GetType() == typeof(bool))
{
return !((bool)sourceValue);
}
return true;
}
#endregion
}
----------------------------------------------------------------------------------------------------
'C# > MAUI' 카테고리의 다른 글
[C#/MAUI/.NET6] INotifyPropertyChanged 인터페이스 : 속성 값 변경 헬퍼 메소드 사용하기 (0) | 2022.06.17 |
---|---|
[C#/MAUI/.NET6] RelativeSource 태그 확장 : Mode 속성을 사용해 템플리트 부모 참조하기 (0) | 2022.06.17 |
[C#/MAUI/.NET6] MultiBinding 엘리먼트 : StringFormat 속성에서 중괄호({ }) 사용하기 (0) | 2022.06.17 |
[C#/MAUI/.NET6] RelativeSource 태그 확장 : Mode 속성을 사용해 자기 자신 참조하기 (0) | 2022.06.17 |
[C#/MAUI/.NET6] RelativeSource 태그 확장 : Mode 속성을 사용해 자기 자신 참조하기 (0) | 2022.06.17 |
[C#/MAUI/.NET6] IValueConverter 인터페이스 : 단정도 실수↔정수 변환자 사용하기 (0) | 2022.06.16 |
[C#/MAUI/.NET6] IValueConverter 인터페이스 : 진리 값↔객체 변환자 사용하기 (0) | 2022.06.16 |
[C#/MAUI/.NET6] Binding 엘리먼트 : Converter 속성에서 진리 값↔객체 변환자 사용하기 (0) | 2022.06.16 |
[C#/MAUI/.NET6] Binding 태그 확장 : StringFormat 속성에서 중괄호({ }) 사용하기 (0) | 2022.06.16 |
[C#/MAUI/.NET6] Binding 태그 확장 : StringFormat 속성에서 이중 인용 부호(") 사용하기 (0) | 2022.06.16 |
댓글을 달아 주세요