【发布时间】:2015-01-17 09:06:50
【问题描述】:
我正在使用 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 文本框。但相反,它给了我一个错误“无法将类型'double'隐式转换为'int'。存在显式转换(您是否缺少演员表?)”。
请帮助并忽略我糟糕的英语。
【问题讨论】:
标签: c# xaml windows-store-apps ivalueconverter