bas*_*sti 6 c# wpf .net-4.0 mvvm
我正在开始一个新项目,并将我的项目结构定位在这个问题中推荐的结构上.
现在我看到了奇怪的行为.当我在View-XAML中设置datacontext时,在运行时找不到它(获得a XamlParseException).当我在codebehind-file的构造函数中设置它时,一切正常.
这是使用不同程序集时的官方(记录)行为,还是我做错了什么?
代码:
不工作:
MainView.xaml:
<UserControl x:Class="ViewsRoot.Views.MainView"
xmlns:baseControls="clr-namespace:BaseControls;assembly=BaseControls"
xmlns:viewModels="clr-namespace:ViewModelsRoot;assembly=ViewModelsRoot">
<UserControl.DataContext>
<viewModels:ShellViewModel />
</UserControl.DataContext>
Run Code Online (Sandbox Code Playgroud)
MainView.xaml.cs
public MainView()
{
InitializeComponent();
// No DataContext set in codebehind-file
}
Run Code Online (Sandbox Code Playgroud)
工作:
MainView.xaml:
<UserControl x:Class="ViewsRoot.Views.MainView"
xmlns:baseControls="clr-namespace:BaseControls;assembly=BaseControls"
xmlns:viewModels="clr-namespace:ViewModelsRoot;assembly=ViewModelsRoot">
<!--<UserControl.DataContext>
<viewModels:ShellViewModel />
</UserControl.DataContext> -->
Run Code Online (Sandbox Code Playgroud)
MainView.xaml.cs:
public MainView()
{
InitializeComponent();
DataContext = new ViewModelsRoot.ShellViewModel();
}
Run Code Online (Sandbox Code Playgroud)
更新:
例外文本是:
{"文件或程序集\"ViewModelsRoot,PublicKeyToken = null \"或其中一个依赖项未找到.系统找不到指定的文件."}
我能看到的唯一内部例外是System.IO.FileNotFoundException.
更新2:
感谢您的评论,但我没有忘记命名空间.我在这里缩短了它以显示代码,但我加倍并且重复检查(再次).DataContexts命名空间也由intellisense填充.整体<viewModels:ShellViewModel />是由智能写的.所以它在设计时被发现......所以更多的想法?
更新3: xaml被"正确"解析,因为我能够将DataContext绑定到同一程序集中的类.
| 归档时间: |
|
| 查看次数: |
1930 次 |
| 最近记录: |