2

現在、Windows8アプリケーションで画像を表示しようとしています。タイプのプロパティList<string>に画像へのパスをいくつか入力するメソッドがあります。これらの画像を画面に表示したいと思います。

したがって、文字列から画像に移動するためのコンバーターを実装しました。ただし、エラーが発生します:

  • 「StringToImageConverter」という名前は、「using:TestApp.Converters」という名前空間に存在しません。
  • '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>ofイメージパスが呼び出されtest、xamlファイルの背後にあるコードにあります。

これを手伝ってくれてありがとう:)

4

3 に答える 3

4

IValueConverters には 2 つのタイプがあるようです。

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最後のパラメータは、stringではなく、である必要がありますCultureInfo

于 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 に答える