使用 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>