无法创建未知类型的clr-namespace;在xaml usercontrol

时间:2016-01-22 18:23:57

标签: wpf xaml

我一直在搜索Google和StackOverflow的高低,我似乎无法找到有效的答案;我在我维护的类库中有一个IValueConverter,我想把它传递给一个(第三方)组件,该组件用XAML文件创建文件打印。 新创建的ClassLibrary(虽然共享命名空间的开头)不是同一项目/解决方案的一部分(并且不能)。

我的问题 1)XAML可以动态加载“外部”类库吗? 2)我是这样,我如何引用这个类库?

到目前为止我做过和尝试过的事情; 我已经在我的类库中添加了一个名为UtcTimeConverter的IValueConverter类,它具有相当简单的转换日期时间到Utc时间函数。

我已正常编译它并编译为资源。

我尝试使用或不使用assembly =

XAML:

    <UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:components="clr-namespace:XX.YY.Printing;assembly=XX.YY.Printing"
    xmlns:dd="clr-namespace:XX.YY.Printing.DesignData;assembly=XX.YY.Printing"
    xmlns:mcl="clr-namespace:XX.YY.MyClassLib;assembly=XX.YY.MyClassLib"
    d:DataContext="{d:DesignInstance dd:SampleXXViewModel, IsDesignTimeCreatable=True}"
    mc:Ignorable="d"
    Height="50.86cm" Width="4.9cm"
    FontFamily="Arial"
    FontWeight="Bold"
    FontSize="0.3cm">

    <UserControl.Resources>
        <mcl:UtcTimeConverter x:Key="utcTimeConverter" />

SNIP

<TextBlock Grid.Column="1" Grid.Row="6" Text="{Binding dateOfIssue, Converter={StaticResource utcTimeConverter}, StringFormat=\{0:ddMMMyy HH:mm\}}"  FontSize="12" />

我的课程:

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Data;

namespace XX.YY.MyClassLib
{
    public class UtcTimeConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (!(value is IConvertible)) return value;

            return System.Convert.ToDateTime(value).ToUniversalTime();
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}

其他XX.YY的东西是可用的,我可以使用这些,但不知怎的,我的新课程从未被调用过;这是错误消息:

  

无法创建未知类型   '{} XX.YY.MyClassLib UtcTimeConverter'“。行号'17'和   行位置'10':at   System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader,   IXamlObjectWriterFactory writerFactory,Boolean   skipJournaledProperties,Object rootObject,XamlObjectWriterSettings   设置,Uri baseUri)at   System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader,   Boolean skipJournaledProperties,Uri baseUri)at   System.Windows.Markup.XamlReader.Load(XamlReader xamlReader,   ParserContext parserContext)at   System.Windows.Markup.XamlReader.Load(XmlReader reader,ParserContext   parserContext,XamlParseMode parseMode)at   System.Windows.Markup.XamlReader.Load(Stream stream,ParserContext   parserContext)在System.Windows.Markup.XamlReader.Load(Stream   流)

0 个答案:

没有答案