0

我在使用以代码隐藏编写的绑定转换器以及相应的标记时遇到问题。它一直给我同样的错误:

不实现接口成员'System.Windows.Data.IValueConverter.Convert(object, System.Type, object, System.Globalization.CultureInfo)'

当我发现代码没有问题时。我正在尝试为加载页面时设置了 DataContext 的列表框设置 DataTemplate。这是我的应用程序中的一些部分代码

代码背后:

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:(本地对应命名空间 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>

我环顾四周,似乎找不到应该显示此错误的任何原因。如果我将转换器移到命名空间之外,则此错误不再存在,但我无法在标记中访问转换器。

有没有人有什么建议?

更新:我现在让 Visual Studio 接受我的代码是正确的,但必须将转换器移动到它自己的命名空间中。不明白为什么必须这样做..

4

0 回答 0