2

我目前正在尝试在我的 Windows 8 应用程序中显示图像。List<string>我有一个方法,它用许多图像路径填充类型的属性。我希望在屏幕上显示这些图像。

因此,我实现了一个从字符串到图像的转换器。但是,我得到了错误:

  • 名称空间“using:TestApp.Converters”中不存在名称“StringToImageConverter”。
  • 'TestApp.Converters.StringToImageConverter' 没有实现接口成员 'Windows.UI.Xaml.Data.IValueConverter.ConvertBack(object, System.Type, object, string)'
  • 'TestApp.Converters.StringToImageConverter' 没有实现接口成员 'Windows.UI.Xaml.Data.IValueConverter.Convert(object, System.Type, object, string)'

这是我的转换器的代码:

namespace TestApp.Converters
{
    public sealed class StringToImageConverter : IValueConverter
    {
        public object Convert(object value, Type targetType,
                              object parameter, CultureInfo culture)
        {
            try
            {
                return new BitmapImage(new Uri((string)value));
            }
            catch
            {
                return new BitmapImage();
            }
        }

        public object ConvertBack(object value, Type targetType,
                                  object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}

从我的 XAML 文件中:

    <common:LayoutAwarePage
        ...
        xmlns:converters="using:TestApp.Converters"
         DataContext="{Binding RelativeSource={RelativeSource Self}}">
        <Page.Resources>
            <converters:StringToImageConverter x:Key="StringToImageConverter"> </converters:StringToImageConverter>
        </Page.Resources>
...
  <ItemsControl ItemsSource="{Binding Path=test}" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="4"
              HorizontalContentAlignment="Stretch">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Image Source="{Binding Converter={StaticResource StringToImageConverter}}" />
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
...

这是否适用于在 Windows 8 应用程序中显示我的图像?List<string>图像路径的 被调用并且test位于 xaml 文件后面的代码中。

非常感谢您对此提供的所有帮助:)

4

3 回答 3

4

显然有两种类型的 IValueConverters:

Windows.UI.Xaml.Data.IValueConverter
System.Windows.Data.IValueConverter

听起来您的框架期待前者,而您正在实施后者。

您可能还需要更改此设置:

xmlns:converters="using:TestApp.Converters"

对此:

xmlns:converters="clr-namespace:TestApp.Converters"
于 2013-01-10T13:50:38.900 回答
3

Windows.UI.Xaml.Data.IValueConverter期望最后一个参数是 a string,而不是 aCultureInfo

于 2013-01-10T13:51:45.657 回答
0
<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"       
        xmlns:s="clr-namespace:System.Collections;assembly=mscorlib"
        xmlns:p="clr-namespace:System;assembly=mscorlib"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
        xmlns:Entities="clr-namespace:Entities;assembly=Entities" 
        mc:Ignorable="d" 
        x:Name="XXXXX"
        x:Class="AAAA.XXXXX" Title="Seciones" Height="644.305" Width="909.579"
        xmlns:c="clr-namespace:AAAA">
    <Window.Resources>
        <c:StringToImageConverter x:Key="stringToImageConverter"/>
    </Window.Resources>
.....
</Window>
于 2014-11-02T16:22:04.737 回答