Sto cercando di imparare a utilizzare Caliburn.Micro con WPF. Come posso aggiungere più viste all'interno di una vista?Aggiungere più viste in una vista utilizzando WPF e Caliburn.Micro
<Window x:Class="ProjectName.Views.MainView"
...>
<Grid>
<views:MyControlView />
</Grid>
</Window>
altro punto di vista, con ViewModel: MyControlViewModel
<UserControl x:Class="ProjectName.Views.MyControlView"
...>
<Grid>
...
</Grid>
</UserControl>
se ho appena aggiungo la vista, non rileverà che ha un ViewModel con il nome appropriato. Come posso legarlo a questo?
Ho provato con diversi bootstrapper e utilizzando qualcosa come cal: Bind.Model = "percorso/nome/unione dei due". Ho provato ad aggiungerlo alla vista principale e all'usercontrol (MyControlView). Sono molto grato per qualsiasi aiuto in merito. Sono praticamente bloccati, e ho molta voglia di utilizzare Caliburn.Micro :)
migliori saluti, diamondfish
Edit: io ancora non riesco a farlo funzionare, il problema sembra essere in bootstrapper o qualcos'altro. Ma per chiarire, ecco il mio codice che sto correndo per un testproject.
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>
codice 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>
codice
MyControlView:
public class MyControlViewModel : PropertyChangedBase
{
public string MyProp
{
get { return "Working"; }
}
}
Schermata dell'errore: http://clip2net.com/s/1gtgt
ho cercato
cal:Bind.Model="Test.ViewModels.MyControlViewModel"
pure. Abbiamo anche provato il cal-di riferimento:
xmlns:cal="http://www.caliburnproject.org"
screenshot del mio progetto http://clip2net.com/s/1gthM
Dato che la documentazione è in gran parte per Silverlight e, a volte è per Caliburn e non CM, avrei attuato il programma di avvio automatico sbagliata. Per questo test-progetto, è proprio così: (con il XAML-cambio di App.xaml)
public class BootStrapper : Bootstrapper<MainViewModel>
{
}
Please help me qui! E sembra che sia un po 'di cose di base che mi manca :)
- post modificato per includere il tag MVVM, benvenuto in SO! – EtherDragon
Controlla l'anser: ho aggiunto una sezione sull'esportazione del tipo. Questo è un requisito importante per c.m trovare il ViewModel correlato alla vista. – EtherDragon