Windows phone 7 根据两个值调用转换器

Windows phone 7 根据两个值调用转换器,windows-phone-7,c#-4.0,silverlight-4.0,Windows Phone 7,C# 4.0,Silverlight 4.0,我试图根据两个值获取一个值,在我的列表框中,我试图执行以下操作: <TextBlock x:Name="Distance" Text="{Binding lattitude,Longtitude,Converter={StaticResource Distanceconverter}}" /> 实际上,问题是我需要调用我的转换器,但取决于2个值, 有什么想法吗?是的,更改为您要绑定的内容,如下所示: <TextBlock x:Name="Distance" Text="{

我试图根据两个值获取一个值,在我的列表框中,我试图执行以下操作:

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

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

是的,更改为您要绑定的内容,如下所示:

<TextBlock x:Name="Distance" Text="{Binding Path=.,Converter={StaticResource Distanceconverter}}" />
假设您的绑定模型如下所示:

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();
    }
}

我必须使用这两个参数来获取值,我无法理解你的答案。你能解释一下吗?直接在转换器中提取这两个参数。我的意思是,您编写了转换器,可以将输入对象强制转换为视图模型,并直接提取纬度和经度。我的问题是,我需要在转换函数中使用locations参数调用带有restclient的webservice,该参数在解析过程中返回到另一个函数!不要这样做,转换器将从一个值转换为另一个值。如果您需要调用异步函数,请在viewmodel中执行,完成后,更新视图模型属性。我找不到一种方法来执行此操作。您能帮我举个例子吗
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();
    }
}