VS не видит Converter

118
18 августа 2019, 16:40

Вот имею вот такой converter в неймспейсе BrainTrain.

Вот файл ByteToImageConverter:

using System;
using System.Globalization;
using System.Windows.Data;
using System.Windows.Media.Imaging;
namespace BrainTrain
{
    public class ByteToImageConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            using (var ms = new System.IO.MemoryStream(value as byte[]))
            {
                var image = new BitmapImage();
                image.BeginInit();
                image.CacheOption = BitmapCacheOption.OnLoad;
                image.StreamSource = ms;
                image.EndInit();
                return image;
            }
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}

А вот xaml окна:

<Window x:Class="BrainTrain.Windows.WorkWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:glob='clr-namespace:BrainTrain'
        mc:Ignorable="d"
        Title="WorkWindow"
        Height="450"
        Width="800">
    <Window.Resources>
        <glob:ByteToImageConverter x:Key='ByteToImageConverter' />
    </Window.Resources>
</Window>

На строчке ошибка:

Имя "ByteToImageConverter" не существует в пространстве имен "clr-namespace:BrainTrain"

И не компилируется проект. Как действовать в такой ситуации и из-за чего она возникает

Answer 1

У вас висит ряд ошибок, которые мешают компилятору собрать грамотно проект.

Первая говорит об ошибке в файле App.xaml, заходим туда и видим строку:

xmlns:local="clr-namespace:BrainTrain.Converters"

У вас в проекте нету ни одного класса, который содержал бы такой namespace, значит строку нужно удалить.

Пробуем пересобрать проект и вуаля! Все успешно заработало и ByteToImageConverter успешно найдет.

READ ALSO
Многопоточность и сериализация

Многопоточность и сериализация

Такой вопрос, как можно осуществить многопоточную десериализацию/сериализацию? Асинхронная понятно, с этим проблем нетНо я бы хотел выделить...

128
Как сделать работающую базу данных?

Как сделать работающую базу данных?

Как сделать чтобы бд работала, сделал как тут, но вызывается исключение:

101
Как рассчитать CRC16 Modbus RTU C#

Как рассчитать CRC16 Modbus RTU C#

Столкнулся с проблемой, взял пример для расчета CRC16 Modbus на C# отсюда Код скомпилировал, создал юнит-тест:

101