我在使用代码隐藏编写的绑定转换器时遇到问题,并带有相应的标记。它一直给我同样的错误:
没有实现接口成员'System.Windows.Data.IValueConverter.Convert(object,System.Type,object,System.Globalization.CultureInfo)'
当我发现代码没有问题时。我正在尝试为列表框设置DataTemplate,该列表框在加载页面时设置了DataContext。以下是我的应用程序中的部分代码
代码背后:
namespace Financial_Manager
{
public class AmountOnScreenConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return "£" + Math.Round((decimal)value, 2).ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
}
的Xaml: (local对应于名称空间Financial_Manager)
<Page.Resources>
<local:AmountOnScreenConverter x:Key="amountConvert" />
<DataTemplate x:Key="recordTemplate">
<Grid Name="newElement">
<TextBlock Name="txtAmount" Height="17" Width="70" Text="{Binding Path=Amount, Mode=OneWay, Converter={StaticResource amountConvert}}"/>
</Grid>
</DataTemplate>
</Page.Resources>
我环顾四周,似乎无法找到应该显示此错误的任何理由。 如果我将转换器移到命名空间之外,则此错误不再存在,但我无法在标记中访问转换器。
有人有任何建议吗?
更新:我现在有视觉工作室接受我的代码是正确的,但必须将转换器移动到自己的命名空间。不明白为什么必须这样做..