Estoy intentando crear algo así como una interfaz con pestañas MDI, así que tengo un panel de navegación (un Listbox) a la izquierda y un ContentPresenter a la derecha.Enlazar un comando a un botón dentro de un ListView con Caliburn.Micro
Tengo un ShellViewModel que tiene un BindableCollection en él llama AvailAbleScreens y gestionado con éxito para unirse a esa lista con un listviews DataTemplate:
<ListView x:Name="AvailableScreens">
<ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<BulletDecorator />
<Button x:Name="DisplayView">
<TextBlock Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />
</Button>
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
El problema ahora es que aunque el nombre del botón se establece correctamente, no puedo hacer que el Comando se dispare por mí. En la clase MdiViewModel Tengo el siguiente código para ese botón:
public bool CanDisplayView()
{
return true;
}
public void DisplayView()
{
MessageBox.Show("Hello");
}
Todas las muestras Caliburn.Micro trabajan con la unión a través de convenciones a la x: Nombre de la propiedad, pero si me quitan el texto = "{Binding} "¿deja de funcionar, así que sospecho que esta forma de enlace de datos no funciona para los submodelos?
De todos modos, modelo de vista de la Shell es bastante simple en la actualidad
ShellViewModel
* AvailableScreens
-MdiViewModel1
-MdiViewModel2
* CurrentActiveScreen
alguna idea de lo que me gustaría hacer esto con Caliburn.Micro? Rob Eisenberg me sugirió en Twitter que podría comenzar con Caliburn.Micro antes de entrar en el marco completo de Caliburn.