Estoy tratando de aprender usando Caliburn.Micro con WPF. ¿Cómo puedo agregar varias vistas dentro de una vista?Agregar varias vistas dentro de una vista usando WPF y Caliburn.Micro
<Window x:Class="ProjectName.Views.MainView"
...>
<Grid>
<views:MyControlView />
</Grid>
</Window>
Otro punto de vista, con el modelo de vista: MyControlViewModel
<UserControl x:Class="ProjectName.Views.MyControlView"
...>
<Grid>
...
</Grid>
</UserControl>
Si Puedo añadir la vista, no detectará que tiene un modelo de vista con el nombre apropiado. ¿Cómo puedo unir esto a esto?
He probado con diferentes bootstrappers y usando algo como cal: Bind.Model = "ruta/nombre de clase/fusión de los dos". He intentado agregar eso a la vista principal y al control de usuario (MyControlView). Estoy MUY agradecido por cualquier ayuda con respecto a este asunto. Estoy bastante atrapado, y realmente quiero usar Caliburn.Micro :)
Best Regards, diamondfish
Editar: Todavía no puedo conseguir que funcione, el problema parece estar en el bootstrapper o algo más. Pero solo para aclarar, aquí está mi código que estoy ejecutando para un proyecto de prueba.
MainView xaml:
<Window x:Class="Test.Views.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
xmlns:views="clr-namespace:Test.Views"
Title="MainWindow" Height="360" Width="640">
<Grid>
<views:MyControlView />
</Grid>
código MainViewModel:
public partial class MainViewModel : PropertyChangedBase
{
}
MyControlView xaml:
<UserControl x:Class="Test.Views.MyControlView"
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"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
cal:Bind.Model="Test.MyControlViewModel"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<TextBlock Text="{Binding MyProp}"/>
</Grid>
código
MyControlView:
public class MyControlViewModel : PropertyChangedBase
{
public string MyProp
{
get { return "Working"; }
}
}
Captura de pantalla del error: http://clip2net.com/s/1gtgt
he tratado
cal:Bind.Model="Test.ViewModels.MyControlViewModel"
también. También probamos la cal-referencia:
xmlns:cal="http://www.caliburnproject.org"
Captura de pantalla de mi proyecto http://clip2net.com/s/1gthM
Dado que la documentación es sobre todo para Silverlight y, a veces es para Caliburn y no CM, podría haber implementado el programa previo equivocado. Para esta prueba en proyectos, es como esta: (con el .xaml-cambio en App.xaml)
public class BootStrapper : Bootstrapper<MainViewModel>
{
}
por favor me ayude aquí! Parece que es un poco de materia básica que me falta :)
- publicación editada para incluir la etiqueta MVVM, bienvenido a SO! – EtherDragon
Verificar el anser - He añadido una sección sobre la exportación del tipo. Este es un requisito importante para c.m para encontrar el ViewModel relacionado con la Vista. – EtherDragon