1
我有一個IValueConverter
,我想用做簡單的數學運算具有以下Convert
功能:如何在IValueConverter中使用targetType參數?
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
參數?
謝謝。我知道必須有這樣的東西... – Will
不客氣。請注意,當您需要將浮點值四捨五入到最接近的整數時,這可能不夠。 – Clemens