Estoy comenzando un nuevo proyecto y orienté mi estructura de proyecto en la estructura recomendada en this question.La vista no encuentra ViewModel en un ensamblaje diferente
Ahora estoy viendo un comportamiento extraño. Cuando configuro el contexto de datos en View-XAML, no se encuentra en tiempo de ejecución (obteniendo un XamlParseException
). Cuando lo configuro en el constructor en codebehind-file, todo está funcionando bien.
¿Este comportamiento (documentado) es oficial al usar diferentes ensamblajes, o estoy haciendo algo mal?
El código:
que no trabaja:
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>
MainView.xaml.cs
public MainView()
{
InitializeComponent();
// No DataContext set in codebehind-file
}
de Trabajo:
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> -->
MainView.xaml.cs:
public MainView()
{
InitializeComponent();
DataContext = new ViewModelsRoot.ShellViewModel();
}
Actualización:
La Excepción de texto es:
{ "El archivo o ensamblado \ "ViewModelsRoot, PublicKeyToken = null \" o una de sus dependencias no se encontró. El sistema no puede encontrar el archivo especificado "}
Y la única excepción interna que puedo ver es una System.IO.FileNotFoundException
Actualización 2:..
Gracias por los comentarios, pero no he Olvidé un espacio de nombres. Lo acorté aquí para mostrar el código, pero volví a marcar doble y triplete (otra vez). El espacio de nombres DataContexts también se rellena con intellisense. Todo el <viewModels:ShellViewModel />
está escrito por intelli-sense. Por lo tanto, se encuentra en designtime ... ... ¿así que más ideas?
Actualización 3: El xaml se analiza "correctamente" ya que puedo vincular el DataContext a una clase en el mismo ensamblaje.
¿Hay alguna excepción interna? – Guillaume
@Guillaume por favor vea mi pregunta actualizada :) – basti
Es posible que haya olvidado algunos espacios de nombres en su 'UserControl'. Compruebe si esta ayuda: http://stackoverflow.com/questions/8852912/xamlparseexception-in-view – Guillaume