XAML绑定到转换器
我想做的是相对简单。 我只是试图将椭圆上的TranslateTransform的Y元素绑定到椭圆的高度的1/2:
我也有以下转换器:
public class MultiplyByFactor : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return ((double)value * (double)parameter); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return true; } }
我在实际使用转换器的XAML线上收到错误。 错误是
‘set property’System.Windows.Data.Binding.Converter’抛出exception。’ 行号’22’和行位置’8’。
任何人都可以了解如何做到这一点? 编辑:是的,我已将转换器添加为资源。
您的代码有两个问题
1)需要使用StaticResource
声明访问您的转换器
2)默认情况下,您的converter参数是一个字符串,因此您需要将其转换为double
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { double.TryParse((parameter as string).Replace(',', '.'), NumberStyles.Any, CultureInfo.InvariantCulture, out double param); return param * (double)value; }
您需要将转换器添加到资源
编辑
您还需要添加命名空间
xmlns:c="clr-namespace:WpfApplication1"
结束编辑
然后,您可以使用资源中的实例
参数可能作为String传递。 在Converter中设置断点并查看value
和parameter
的value
。 您可能需要使用double.Parse而不是强制转换。