【发布时间】:2011-06-09 05:13:01
【问题描述】:
这看起来很愚蠢,但我已经寻找了几个小时,但没有找到解决这个问题的方法。
我正在使用 MvvmLight。我有一个简单的 MainWindow,里面只有一个 Grid。我有另一个类,它是一个包含一个按钮的 WPF UserControl。这两个都有
DataContext="{Binding Main, Source={StaticResource Locator}}"
在它们的节点定义中(Window 或 UserControl)。 App.xaml 在其资源中有标准条目:
<vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
我正在玩消息传递,我收到一条消息,说在主窗口中加载此 UserControl。我可以追踪,一切正常——直到它实例化新的 UserControl 并且后面的代码执行它的 InitializeComponent()。
此时,应用程序在用户控件的 .xaml 文件中停止,并出现 XamlParseException 抱怨它找不到“Locator”(是的,我知道,资源名称区分大小写,谢谢)。
这对我来说完全没有意义。在用户控件的设计模式下,我可以导航到我想要的数据上下文——它看到 Locator,Locator 看到 Main,Main 看到我绑定到按钮的属性。并且设计师在按钮上显示了文字。
有人吗???
这是 VS 2010 Ultimate 中的 C#,v10.0.30319.1,在 Windows 7 中运行。
【问题讨论】:
-
这可能不会有什么不同,但试试
{Binding Path=Main, Source={StaticResource Locator}}。这也可能适用:codeproject.com/Tips/173712/… -
不,Path=Main 没有区别。在 Locator 前面也没有添加“ResourceKey=”。
-
发布压缩复制品? App.xaml 的构建操作是什么?您是在为您的应用程序使用生成的入口点,还是在指定自定义入口点?
标签: c# wpf visual-studio-2010 mvvm-light