我想簡單地對我的自定義控件做一些數學運算。我需要取一個「寬度」值並將其分配給Converter Paramater。c#轉換器獲取指定的演員表無效
這裏是綁定:
<Border x:Name="circleBorder"
Grid.Row="0"
CornerRadius="{Binding Path=ActualWidth, ElementName=circleGrid}"
Width="{Binding Path=ActualWidth, ElementName=circleGrid}"
Height="{Binding Path=ActualWidth, ElementName=circleGrid}"
BorderBrush="White"
BorderThickness="{Binding Converter={StaticResource CalculateBorder}, Path=Width, ElementName=circleBorder, ConverterParameter=30}">
這是轉換器,它應該做一些簡單的數學。
public class CalculateBorder : 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)
{
throw new NotImplementedException();
}
}
我得到的return ((double)value/(double)parameter);
此錯誤:
指定的轉換是無效的。
聽起來好像你的'parameter'或'value'實際上可能並不是一個雙。嘗試使用'Convert.ToDouble()'而不是直接轉換,因爲它會正確處理更多的情況。 –
向我們展示CalculateBorder是什麼。這是這裏關鍵的缺失信息。最好的方法來證明這一點:不要在你的'Convert'方法中使用參數,只需將'(double)value'除以2.2。 – code4life
你應該在問之前調試這些東西。當您進行轉換時,「value」和「parameter」中有什麼? – Will