FuncConverter
Эта FuncConverter
возможность позволяет определить встроенную IValueConverter
реализацию при сборке пользовательского интерфейса. Дополнительное преимущество использования FuncConverter
реализации заключается в том, что он предоставляет тип безопасный способ выполнения преобразований. Пакет разметки C# использует FuncConverter
внутреннее значение для встроенного преобразования в методе Bind
расширения.
Примечание.
FuncConverter
поддерживает только одно Binding
значение, если требуется MultiBinding
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
.
Используя тот же пример, что и выше, можно включить ConverterParameter
из Binding
:
var converter = new FuncConverter<TimeSpan, double, int>(
convert: (time, offset) => time.TotalSeconds + offset,
convertBack: (seconds, offset) => TimeSpan.FromSeconds(seconds - offset));
Оба параметра являются необязательными convert
convertBack
, чтобы разработчики могли определять только необходимые параметры.
API
Исходный код функции FuncConverter
можно найти в репозитории сообщества .NET MAUI community набор средств GitHub.
.NET MAUI Community Toolkit
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по