1

我最近使用 MS Prism 开始了一个新项目。在我的一个 UI 模块中,我有资源文件,我需要将它们添加到应用程序资源字典中。所以我编写了这段代码来做到这一点:

uri = new Uri(string.Format(@"pack://application:,,,/{0};component/{1}",
                            "namespacename",
                            "Resources.xaml"));
                Application.Current.Resources.MergedDictionaries
                    .Add(new ResourceDictionary
                    {
                        Source = uri,
                    });

在我的资源文件中,我有 Datatemplate 的 Setter,它看起来像这样:

   <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding State}" Value="Modified">
            <Setter TargetName="img" Property="Source" Value="../Images/ICO/Modify.ico"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding State}" Value="Added">
            <Setter TargetName="img" Property="Source" Value="../Images/ICO/Add.ico" />
        </DataTrigger>
    </DataTemplate.Triggers>

问题是在加载资源文件时抛出“'System.Windows.Setter'的初始化引发异常。” 但是当我删除这个设置器时,它工作正常。任何想法?

4

1 回答 1

0

我需要做一些测试。但是您可以尝试将图像的路径更改为绝对路径,例如:pack://application:,,,/{0};component/Images/ICO/Modify.ico

于 2012-01-19T07:02:02.530 回答