Как я могу преобразовать полный объект с 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
,