I have a wpf application using Caliburn.Micro. I have a view MyView:
<UserControl x:Class="ReferenceMaintenanceWorkspace.MyView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
>
<UserControl.Resources>
</UserControl.Resources>
<TabControl x:Name="Items" >
</TabControl>
I have also MyViewModel:
using System.ComponentModel.Composition;
namespace ReferenceMaintenanceWorkspace
{
[Export(typeof(MyViewModel))]
public class MyViewModel
{
public MyViewModel()
{
base.DisplayName = "Reference Maintenance";
}
Because of some reason, I get the following message on the tab control:
Cannot find view for ReferenceMaintenanceWorkspace.MyViewModel.
Could you please explain why this could happen? Thanks.
Caliburn Micro is expecting certain file structure within your project. Your views and viewmodels should be in separate folders named Views and ViewModels.
Here is a nice Hello World example that describes this.
You should override SelectAssemblies in bootstrapper and provide assembly name where your view lies in.
make sure you have folders ViewModels and Views. Also make sure the names of your classes and usercontrols/windows also follow these namingconventions like:
If the views and viewmodels are located in a different assembly try this:
In your bootstrapper you need to add the assembly where the viewmodel/view is located:
Just for the future, it happens also after renaming classes/packages, but in view xaml file "x:Class" is not updated.