wp创建一个带有绑定ConverterParameter的转换器

时间:2012-06-29 13:32:49

标签: wpf binding parameters converter

我在这篇文章中看到了一个完全符合我需要的解决方案https://stackoverflow.com/a/8858815/1462911

但我真的不知道如何正确实施它。

我现在有一个PositionConverter转换字符串中的坐标,但我想通过它的参数传递其Parent(画布)的ActualWidth。

我的ConverterHelper是否必须实现IValueConverter和DependencyObject或只是DependencyObject?

我有点失落......

1 个答案:

答案 0 :(得分:1)

您最需要的是通过IMultiValueConverterMultiBinding

完成的工作
public class PositionConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        var scale = (double)values[0]; // this is your [0, 1] double
        var max = (double)values[1]; // this is the ActualWidth
        return scale * max;
    }
}

绑定看起来像:

<Element.Property>
    <MultiBinding Converter="{StaticResource myConverter}">
        <Binding Path="path_to_the_original_double" />
        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorLevel=1}"
                 Path="ActualWidth" />
    </MultiBinding>
</Element.Property>