【发布时间】:2016-06-01 11:26:52
【问题描述】:
我有一个 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 参数吗?
【问题讨论】:
标签: c# wpf xaml type-conversion ivalueconverter