使用 ConverterParameter 的使用转换器

演示如何创建简单转换器并使用 ConverterParameter 将参数传递给转换器。在 ConverterParameter 中传递的系数乘以系数。

public class MultiplyConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value == null)
            return 0;

        if (parameter == null)
            parameter = 1;

        double number;
        double coefficient;

        if (double.TryParse(value.ToString(), out number) && double.TryParse(parameter.ToString(), out coefficient))
        {
            return number * coefficient;
        }

        return 0;
    }

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

使用转换器

  1. 命名空间
xmlns:converters="clr-namespace:MyProject.Converters;assembly=MyProject"
  1. 定义资源
<converters:MultiplyConverter x:Key="MultiplyConverter"/>
  1. 在绑定中使用它
<StackPanel Orientation="Vertical">
    <TextBox x:Name="TextBox" />
    <TextBlock Text="{Binding Path=Text, 
                              ElementName=TextBox, 
                              Converter={StaticResource MultiplyConverter},
                              ConverterParameter=10}"/>
</StackPanel>