Share via


FuncConverter

FuncConverter UI를 빌드할 때 인라인으로 구현을 IValueConverter 정의하는 기능을 제공합니다. 구현을 FuncConverter 사용할 때의 또 다른 이점은 변환을 수행하는 형식 안전 방법을 제공한다는 것입니다. C# 태그 패키지는 확장 메서드의 FuncConverter인라인 변환 옵션Bind 내부적으로 사용합니다.

참고 항목

FuncConverter지원이 필요한 MultiBinding 경우 단일 Binding 값만 지원FuncMultiConverter합니다.

변환기는 필요한 정보의 양에 따라 변환을 정의하는 다양한 방법을 제공합니다.

FuncConverter<TSource>

구현 FuncConverter<TSource> 을 사용하면 들어오는 값이 안전한 형식만 제공하는 변환 프로세스를 정의할 수 있습니다.

다음 예제에서는 초 단위 TimeSpan 로 표현된 변환기와 변환기를 빌드하는 double 방법을 보여줍니다.

var converter = new FuncConverter<TimeSpan>(
    convert: (time) => time.TotalSeconds,
    convertBack: (value) => TimeSpan.FromSeconds((double)value));

개발자가 convert 필요한 항목만 정의할 수 있도록 하려면 매개 변수와 convertBack 매개 변수가 모두 선택 사항입니다.

여기서는 메서드가 형식이 convertBack 안전하지 않은 것으로 표시되지 않습니다.

FuncConverter<TSource, TDest>

구현 FuncConverter<TSource, TDest> 을 사용하면 형식에 안전한 들어오는 값과 형식 안전 반환 값을 제공하는 변환 프로세스를 정의할 수 있습니다.

위와 동일한 예제를 사용하여 구현 형식을 convertBack 안전하고 읽기 쉽게 만들 수 있습니다.

var converter = new FuncConverter<TimeSpan, double>(
    convert: (time) => time.TotalSeconds,
    convertBack: (seconds) => TimeSpan.FromSeconds(seconds));

개발자가 convert 필요한 항목만 정의할 수 있도록 하려면 매개 변수와 convertBack 매개 변수가 모두 선택 사항입니다.

FuncConverter<TSource, TDest, TParam>

FuncConverter<TSource, TDest, TParam> 구현을 통해 형식 안전 들어오는 값, 형식 안전 반환 값 및 형식 안전 형식을 제공하는 변환 프로세스를 정의할 수 있습니다 ConverterParameter.

위와 동일한 예제를 사용하여 다음을 Binding포함할 ConverterParameter 수 있습니다.

var converter = new FuncConverter<TimeSpan, double, int>(
    convert: (time, offset) => time.TotalSeconds + offset,
    convertBack: (seconds, offset) => TimeSpan.FromSeconds(seconds - offset));

개발자가 convert 필요한 항목만 정의할 수 있도록 하려면 매개 변수와 convertBack 매개 변수가 모두 선택 사항입니다.

API

.NET MAUI 커뮤니티 도구 키트 GitHub 리포지토리에서 기능에 대한 FuncConverter 소스 코드를 찾을 수 있습니다.