Как я могу преобразовать полный объект с IValueConverter в (Xamarin.Forms) XAML?

Я реализовал методы из IValueConverter в классе X.

public class X : IValueConverter {
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
       ...
 }
 ...
}

В XAML у меня есть <Label Text="{Binding A, Converter={StaticResource TextConverter}, ConverterParameter=X}" />

Это отлично работает. Свойство A (из экземпляра класса Y) передается методу Convert в моем экземпляре класса X. И я могу преобразовать.

public class Y {
 public string A { get; set; }
 public string B { get; set; }
}

Теперь я хочу передать весь объект в метод Convert. Так что, если я могу получить доступ к свойствам A и B из экземпляра класса Y в моем методе convert.

Поэтому я изменил свой код XAML на <Label Text="{Binding ., Converter={StaticResource TextConverter}, ConverterParameter=X}" /> Но это не сработало. Значение параметра в методе Convert всегда равно нулю.

Как я могу передать весь объект (от типа Y)? Или, если это невозможно, как я могу передать более одного свойства методу Convert? В XAML.

1 ответ

Решение

Вы можете передать Property из class Y,

Сначала вам нужно создать свойство вашего класса, как показано ниже,

 public Y NewObject { get; set; }

Тогда вы должны использовать свой NewObject привязывать как

<Label Text="{Binding NewObject, Converter={StaticResource TextConverter}, ConverterParameter=X}" />

Теперь в вашем конвертере вы сможете получить объект и получить A а также B свойства с использованием NewObject,

Другие вопросы по тегам