2012-06-18 4 views
7

Mam aplikację wpf przy użyciu Caliburn.Micro. Mam widok MyView:Nie można znaleźć widoku dla 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> 

Mam też MyViewModel:

using System.ComponentModel.Composition; 

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

powodu jakiegoś powodu, pojawia się następujący komunikat w sprawie kontroli zakładka:

Nie można odnaleźć widok dla ReferenceMaintenanceWorkspace.MyViewModel.

Proszę wyjaśnić, dlaczego tak się stało? Dzięki.

Odpowiedz

12

Caliburn Micro oczekuje określonej struktury plików w ramach projektu. Twoje widoki i modele widoku powinny znajdować się w osobnych folderach o nazwach Widoki i ViewModels.

Here to miły przykład Hello World, który opisuje to.

+1

Aplikacja, którą już posiadam, miała już różne widoki i widoki. Żadne z nich nie istniało w folderach o nazwach Widoki i ViewModels, a mimo to działały. Wszystkie istniały jednak w różnych projektach bibliotek klasowych i dodawałem nowy o nazwie ReferenceMaintenanceWorkspace. Zastanawiam się, czy projekty powinny mieć jakieś szczególne ustawienia, których nie jestem świadomy ... –

+1

Może to robione ręcznie Caliburn.Micro.View.SetModel (NameView, NameViewModel); – ShadeOfGrey

+0

lub w widoku ShadeOfGrey

4

powinny przesłonić SelectAssemblies w inicjującego i dostarczyć nazwę zespołu, gdzie widok leży w

5

Tak na przyszłość, zdarza się również po zmianie nazwy klas/pakietów, ale w widoku xaml pliku „x: Class”. Nie jest zaktualizowany.