Приложение WPF выдает «исключение XmlParseException» при использовании конвертера - PullRequest
0 голосов
/ 01 июля 2011

Я строю маленькое приложение 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 ]

1 голос
/ 01 июля 2011

использование <local:imageconverter x:Key="Convert"/>

0 голосов
/ 02 июля 2011

В вашем конвертере должен быть реализован интерфейс IValueConverter, иначе WPF не будет знать, что с ним делать (поэтому он выдаст вам это исключение).

class Converter : IValueConverter
{
   ...
}
...