我有一个 IValueConverter
,我想用它来执行简单的数学运算,该转换器包含以下 Convert
函数:
public object Convert(
object value,
Type targetType,
object parameter,
CultureInfo culture)
{
if (parameter == null)
{
return value;
}
switch (((string)parameter).ToCharArray()[0])
{
case '%':
return (double)value % double.Parse(
((string)parameter).TrimStart(new char[] {'%'}));
case '*':
return (double)value * double.Parse(
((string)parameter).TrimStart(new char[] {'*'}));
case '/':
return (double)value / double.Parse(
((string)parameter).TrimStart(new char[] {'/'}));
case '+':
return (double)value + double.Parse(
((string)parameter).TrimStart(new char[] {'+'}));
case '-':
if (((string)parameter).Length > 1)
{
return (double)value - double.Parse(
((string)parameter).TrimStart(new char[] {'-'}));
}
else
{
return (double)value * -1.0D;
}
default:
return DependencyProperty.UnsetValue;
}
}
显然,这种方法并不适用于每种情况,因为有些属性的类型是int
。
我知道targetType
参数可能是我需要在此转换器中使用的内容,但我找不到如何正确使用它将返回值转换为相应的内容的示例。
有人知道如何在此上下文中使用targetType
参数吗?