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