C# 从ViewModel引用ResourceDictionary
我一直在尝试在我的视图模型中加载一个资源字典XAML文件。我能够实例化它,对它的调用不会立即导致错误,但在控制返回到UI后,会出现一个错误弹出窗口“error HRESULT E_FAIL已从对COM组件的调用返回” 我正在做以下工作:C# 从ViewModel引用ResourceDictionary,c#,silverlight,mvvm,com,resourcedictionary,C#,Silverlight,Mvvm,Com,Resourcedictionary,我一直在尝试在我的视图模型中加载一个资源字典XAML文件。我能够实例化它,对它的调用不会立即导致错误,但在控制返回到UI后,会出现一个错误弹出窗口“error HRESULT E_FAIL已从对COM组件的调用返回” 我正在做以下工作: ResourceDictionary文件是ViewModelsResources.xaml位于MyApp/ViewModels中,其中MyApp是我的Silverlight应用程序的根文件夹 ResourceDictionary VMResources = n
- ResourceDictionary文件是
位于ViewModelsResources.xaml
中,其中MyApp/ViewModels
是我的Silverlight应用程序的根文件夹MyApp
ResourceDictionary VMResources = new ResourceDictionary()
{
Source = new Uri("/ViewModels/ViewModelsResources.xaml", UriKind.Relative)
};
ViewModelsResources.xaml
标记为生成操作:Content
,复制到输出目录:Copy always
,自定义工具:MSBuild:Compile
ResourceDictionary VMResources = new ResourceDictionary()
{
Source = new Uri("/ViewModels/ViewModelsResources.xaml", UriKind.Relative)
};
Template1=VMResources[“myTemplate”]作为ControlTemplate代码>(与上面的代码示例相同)
调试表明
VMResources
和Template1
被分配了良好的值。我不知道这为什么会抛出有关COM组件的错误,但我已经将其隔离到引用此ResourceDictionary时。如果我取出引用VMResources[x]
的行,则没有错误。任何帮助都将不胜感激。事实证明,这确实如我所描述的那样有效,但您不能在资源字典中找到的模板中指定事件。我应该意识到这会引起问题,但COM却把我甩了。为了避免对事件处理程序的需求,我使用了行为。有很多关于行为的阅读。我开始和他交谈
注意:如果有人认为我应该删除这个问题,因为它实际上是按照建议的那样工作的,那么就这样评论吧。我想,保留此选项可能有助于尝试做与我相同的事情。结果表明,此选项确实如我所述有效,但您不能在资源字典中找到的模板中指定事件。我应该意识到这会引起问题,但COM却把我甩了。为了避免对事件处理程序的需求,我使用了行为。有很多关于行为的阅读。我开始和他交谈 注意:如果有人认为我应该删除这个问题,因为它实际上是按照建议的那样工作的,那么就这样评论吧。我想离开这个可能会帮助那些想和我做同样事情的人