【发布时间】:2012-08-22 16:02:11
【问题描述】:
我一直在尝试在我的视图模型中加载资源字典 XAML 文件。我能够实例化它,并且调用它不会立即导致错误,但是在控制返回 UI 后,会弹出错误消息“错误 HRESULT E_FAIL 已从对 COM 组件的调用中返回”。
我正在做以下事情:
- ResourceDictionary 文件位于
MyApp/ViewModels中的ViewModelsResources.xaml,其中MyApp是我的 Silverlight 应用程序的根文件夹 -
ViewModelsResources.xaml标记为构建操作:Content,复制到输出目录:Copy always,自定义工具:MSBuild:Compile - ResourceDictionary 对象被实例化(并且此代码与资源字典文件位于同一文件夹中的类中)
ResourceDictionary VMResources = new ResourceDictionary() { Source = new Uri("/ViewModels/ViewModelsResources.xaml", UriKind.Relative) }; - 然后通过基于 x:Key 值的索引引用该对象:
Template1 = VMResources["myTemplate"] as ControlTemplate;(与上面的代码示例相同的类)
调试显示VMResources 和Template1 被赋予了良好的值。我不知道为什么这会引发有关 COM 组件的错误,但我已将其隔离到引用此 ResourceDictionary 时。如果我取出引用VMResources[x] 的行,则没有错误。任何帮助将不胜感激。
【问题讨论】:
标签: c# silverlight mvvm com resourcedictionary