2012-06-18 15 views
7

Tengo una aplicación wpf con Caliburn.Micro. Tengo una visión MyView:No se puede encontrar la vista de ViewModel

<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> 

también tengo MyViewModel:

using System.ComponentModel.Composition; 

namespace ReferenceMaintenanceWorkspace 
{ 
[Export(typeof(MyViewModel))] 
public class MyViewModel 
{ 
    public MyViewModel() 
    { 
     base.DisplayName = "Reference Maintenance"; 
    } 

Por alguna razón, me sale el siguiente mensaje en la tarjeta de registro:

¿No encuentra ver para ReferenceMaintenanceWorkspace.MyViewModel.

¿Podría explicar por qué esto podría pasar? Gracias.

Respuesta

12

Caliburn Micro espera cierta estructura de archivos dentro de su proyecto. Sus vistas y viewmodels deben estar en carpetas separadas denominadas Vistas y Modelos de Vista.

Here es un buen ejemplo Hello World que describe esto.

+1

La aplicación que estoy manteniendo ya tenía varias vistas y modelos de vista. Ninguno de ellos existía en carpetas con nombres Views y ViewModels, y sin embargo funcionaron. Sin embargo, todos ellos existían en diferentes proyectos de biblioteca de clase, y estoy agregando uno nuevo llamado ReferenceMaintenanceWorkspace. Me pregunto si los proyectos deberían tener algunas configuraciones particulares de las que no tengo conocimiento ... –

+1

Quizás se esté haciendo manualmente Caliburn.Micro.View.SetModel (NameView, NameViewModel); – ShadeOfGrey

+0

o en la vista ShadeOfGrey

4

Debe anular SelectAssemblies en programa previo y proporcionar nombre de ensamblado donde su vista se encuentra en

5

sólo para el futuro, sucede también después de cambiar el nombre de clases/paquetes, pero en vista de archivos XAML "x: Class". No es actualizado.

Cuestiones relacionadas