如何在(Xamarin.Forms)XAML中使用IValueConverter转换完整对象?

时间:2016-06-09 10:32:57

标签: c# wpf xaml xamarin ivalueconverter

我已经在类X中实现了IValueConverter中的方法。

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的实例)在我的类X的实例中传递给Convert方法。我可以转换。

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

现在我想将整个对象传递给Convert方法。因此,如果我可以在我的转换方法中从类Y的实例访问属性A和B.

所以我将我的XAML代码更改为<Label Text="{Binding ., Converter={StaticResource TextConverter}, ConverterParameter=X}" />但它没有用。 Convert方法中的参数值始终为null。

如何传递完整对象(来自Y型)?或者,如果不可能,我如何将多个属性传递给Convert方法?在XAML。

1 个答案:

答案 0 :(得分:1)

您可以传递Property的{​​{1}},

首先,您需要创建类的属性,如下所示

class Y

然后你必须使用你的 public Y NewObject { get; set; } 绑定

NewObject

现在,在您的转换器中,您将能够使用<Label Text="{Binding NewObject, Converter={StaticResource TextConverter}, ConverterParameter=X}" /> 获取对象并获取AB属性。