首页 > 解决方案 > 从另一个程序集加载转换器:“在 'System.Windows.StaticResourceExtension' 上提供值引发异常。”

问题描述

我知道对此有几个答案,但它们不包括我的具体情况!请在关闭问题之前检查。


我有一个引用Utils.WPF项目(也是 DLL)的 DLL 项目。引用的项目应该有许多 WPF 对象,例如转换器、命令等。

如果我尝试使用 Utils.WPF 程序集中的转换器,我会在运行时收到此异常:

引发异常:PresentationFramework.dll 中的“System.Windows.Markup.XamlParseException”附加信息:“在“System.Windows.StaticResourceExtension”上提供值引发异常。” 行号“22”和行位置“18”。发生了

第 22 行是我使用转换器的地方:

<Window x:Class="MainNameSpace.WpfSelectODAttributes"
        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:local="clr-namespace:MainNameSpace"
        xmlns:wpf="clr-namespace:Utils.WPF;assembly=Utils.WPF"
        mc:Ignorable="d"
        Title="Selecione os atributos desejados:" Height="450" Width="400">
    <Window.Resources>
        <wpf:BoolVisibilityCollapseConverter x:Key="BoolToVisible"/>
    </Window.Resources>
    
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>


        <ListBox ItemsSource="{Binding Items}" 
                 Visibility="{Binding HasItems, Converter={StaticResource BoolToVisible}}" 
                 Grid.Column="0" Margin="10">
     .............

但是,如果我使用完全相同的代码,但在主项目中声明转换器(在内部,在声明资源时在 xml 中MainNameSpace更改),则程序运行良好。wpf:local:

我尝试将Utils.WPF代码编译为AnyCPUx64x86没有成功。PS:主要项目是项目必须是x64

有什么我可能会丢失的解决方案吗?

标签: c#wpfxamldll

解决方案


推荐阅读