2016-06-09 77 views
0

我已经实现从的IValueConverter方法的类X.如何使用(Xamarin.Forms)XAML中的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方法。所以如果我可以在我的convert方法中从类Y的实例访问属性A和B.

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

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

+0

您的代码似乎是错误的...您无法将类'X'作为转换器参数 –

+0

尝试使用多重绑定... http://stackoverflow.com/a/6358345/4767498 –

回答

1

可以传递的class YProperty

首先,你需要创建类像下面的属性,

public Y NewObject { get; set; } 

然后,你必须使用你的NewObject绑定像

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

现在在您的转换器中,您将能够获得对象并获得AB使用NewObject的属性。