使用Converter时,WPF应用程序抛出'XmlParseException未处理'

时间:2011-07-01 12:43:29

标签: wpf image converter

我正在构建一个小的Wpf应用程序来学习自己wpf。 我遇到了一个控制器的问题。 我有一个带有字符串格式的url列表的对象,我想将它们绑定到一个图像,并使用wpf转换器类将url转换为位图。

但是当我实现转换器时,程序会抛出以下错误:

  

'XmlParseException未处理'

详细说明:

  

“{”无法转换类型的对象   键入'ChanGrabber.Converter'   'System.Windows.Data.IValueConverter'。 “}”

这是在xaml中引用转换器的代码:

xmlns:local="clr-namespace:ChanGrabber">
<Window.Resources>
    <local:Converter x:Key="Convert"/>
</Window.Resources>

这是我使用控件的代码:

<DataTemplate>
  <StackPanel Orientation="Horizontal">
    <Image Source="{Binding ThumbImgUrl, Converter={StaticResource Convert}}" />
  </StackPanel>
</DataTemplate>

以下是转换器的代码:

namespace ChanGrabber
{
    class Converter
    {
        [valueconversion(typeof(string), typeof(bitmapimage))]
        public class imageconverter : ivalueconverter
        {
            public object convert(object value, type targettype, object parameter, system.globalization.cultureinfo culture)
            {
                try
                {
                    string mypath = (string)value;
                    uri myuri = new uri(mypath);
                    bitmapimage animage = new bitmapimage(myuri);
                    return animage;
                }
                catch (exception)
                {

                    return new bitmapimage(new uri("ikke funket"));
                }
            }

            public object convertback(object value, type targettype, object parameter, system.globalization.cultureinfo culture)
            {
                throw new notimplementedexception();
            }
        }

这是我绑定到图像的对象

class MainPosts : MainLinks
    {
        public MainPosts(string _title, string _link, String _postText, string _imageUrl, string _thumbUrl) :base(_title,_link)
        {
            PostText = _postText;
            ImageUrl = _imageUrl;
            ThumbImgUrl = _thumbUrl;
        }

        public String PostText { get; set; }

        public String ImageUrl { get; set; }

        public string ThumbImgUrl { get; set; }
    }

我不知道为什么它不起作用,我对这个程序感到沮丧。 任何帮助都会非常受欢迎

2 个答案:

答案 0 :(得分:1)

使用<local:imageconverter x:Key="Convert"/>

答案 1 :(得分:0)

您的转换器需要实现IValueConverter接口,否则WPF将不知道如何处理它(因此它会为您提供该异常。)

class Converter : IValueConverter
{
   ...
}