我正在使用XAML和C#在Windows 8.1 Store App上工作。
我添加了2个文本框并实现了IValueConverter接口。
这是Xaml代码
<Page.Resources>
<local:ConverterClass x:Key="C_Converter" />
<local:EuroConverterClass x:Key="Euro_Converter" />
<local:YenConverterClass x:Key="Yen_Converter" />
</Page.Resources>
<TextBox Name="PKR_TextBox"
Grid.Row="1"
Grid.Column="2"
Width="450"
Height="50"
FontSize="30"
FontWeight="Bold"
HorizontalAlignment="Left"
VerticalAlignment="Center" />
<TextBox Name="DOLLAR_TextBox"
Grid.Row="2"
Grid.Column="2"
Text="{Binding ElementName=PKR_TextBox, Path=Text, Converter={StaticResource C_Converter}}"
Width="450"
Height="50"
FontSize="30"
FontWeight="Bold"
HorizontalAlignment="Left"
VerticalAlignment="Center" />
这是我的转换器类代码:
class ConverterClass : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
int pkr;
int dollar = 0;
if (Int32.TryParse(value.ToString(), out pkr))
{
dollar = pkr * 0.0099;
}
return dollar;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
我试图在运行时转换货币,当用户在PKR文本框中输入值时,它应该自动更新USD Textbox。但它却给了我一个错误&#34;无法隐式转换类型&#39; double&#39; to&#39; int&#39;。存在显式转换(您是否错过了演员?)&#34;。
请帮助,不理我的英语。
答案 0 :(得分:0)
错误信息非常清楚。您必须使用double
值进行计算。使用C#时,double
是默认的浮点类型。
public object Convert(
object value, Type targetType, object parameter, string language)
{
double pkr;
double dollar = 0.0;
if (double.TryParse(value.ToString(), out pkr))
{
dollar = pkr * 0.0099;
}
return dollar;
}