使用从文件路径到图像的转换器时不显示图像

时间:2013-01-10 14:46:28

标签: c# windows image xaml datatemplate

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

因此,我已经实现了从字符串到图像的转换器。它正确进入转换器,在Convert方法中遇到断点,但屏幕上仍然没有显示。

以下是我的转换器中的代码:

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

        public object ConvertBack(object value, Type targetType,
                                  object parameter, string path)
        {
            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>
...

List<string>图像路径称为test,位于xaml文件的后面。

以下是我在xaml.cs文件后面的代码中的相关代码的简单版本:

    public List<string> test { get; set; }

    public MainPage()
    {
        test = new List<string>();
        test.Add("C:\\Users\user\\Pictures\\test.jpg");
        this.InitializeComponent();
    }

非常感谢您对此的任何帮助:)

0 个答案:

没有答案