很奇怪标签''在XML命名空间'clr-namespace:'中不存在。错误

时间:2015-01-19 15:03:39

标签: c# xml wpf

好的,所以我在App.xaml的Application.Resources中为Binding Color转换器添加了这段代码:

xmlns:converter="clr-namespace:FtpUploader2.Converters"
<converter:MessageTypeEnumToColor x:Key="MessageTypeEnumToColor"/>

我没有收到错误消息,程序编译得很好,它改变了我的消息元素上的不同颜色,直到我在代码中的一行添加了PrintMessage()函数。

<Label Content="{Binding Text}" 
Background="{Binding MessageType, Converter={StaticResource MessageTypeEnumToColor}}"/>

将信息打印到wpf视图列表:

public void PrintMessage(string a_message, Model.Message.MsgType a_msgType = Model.Message.MsgType.Information)
{
                    Model.Message message = new Model.Message(a_message, a_msgType);    
                    Messages.Insert(0, message);                
}

我在应用程序中使用了PrintMessage功能很多次。现在到了我无法弄清楚它为什么会发生的部分。

在一个名为HandleUploadTabSelected()

的函数中
PrintMessage("Failed to upload one or more accounts", Model.Message.MsgType.Error);

导致标题中的错误消息:

  

错误1 XML中不存在标记“MessageTypeEnumToColor”   namespace'clr-namespace:FtpUploader2.Converters'。第7行位置   10。

编辑:在测试迈克的建议之后,根本没有编译。添加;assembly=FtpUploader2

这是MessageTypeEnumToColor的代码:

using FtpUploader2.Model;
namespace FtpUploader2.Converters
{
    class MessageTypeEnumToColor : IValueConverter
    {
        #region IValueConverter Member

        object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            Message.MsgType tempMsg = (Message.MsgType)value;
            Brush retval;

            switch (tempMsg)
            {
                case Message.MsgType.Ok:
                    retval = Brushes.Green;
                    break;

                case Message.MsgType.Warning:
                    retval = Brushes.Yellow;
                    break;

                case Message.MsgType.Error:
                    retval = Brushes.Red;
                    break;              
                default:
                    retval = Brushes.White;
                    break;
            }

            return retval;
        }

        object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}

1 个答案:

答案 0 :(得分:0)

确保应用程序的目标框架(属性>应用程序>目标框架)与目标程序集的目标框架相同(例如.NET Framework 4.7.2)