根据两个值调用转换器

时间:2014-02-25 09:33:56

标签: windows-phone-7 c#-4.0 silverlight-4.0

我正试图获取一个取决于两个值的值,在我的列表框中我试图做这样的事情:

<TextBlock x:Name="Distance" Text="{Binding lattitude,Longtitude,Converter={StaticResource Distanceconverter}}" />

所以,实际上我需要调用我的转换器的问题,但取决于2个值,  有什么想法吗?

1 个答案:

答案 0 :(得分:0)

是的,改为你对以下内容的约束:

<TextBlock x:Name="Distance" Text="{Binding Path=.,Converter={StaticResource Distanceconverter}}" />

并更改您的DistanceConverter以接受包含纬度和经度的对象。 Windows Phone目前不支持多重绑定。

在页面顶部添加:

  <phone:PhoneApplicationPage.Resources>
    <converters:Distanceconverter x:Key="Distanceconverter" />
</phone:PhoneApplicationPage.Resources>

假设您的绑定模型如下:

public class LocationModel
{
    public double Longitude { get; set; }
    public double Latitude { get; set; }
}

的形式创建转换器
public class DistanceConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var location = value as LocationModel;

        if (location != null)
        {
            // Your business logic here, e.g.
            return location.Latitude + location.Latitude;
        }

        return null;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}