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