De acuerdo con el patrón MVVM:
- The View sabe sobre el modelo de vista - que tendrá una referencia a él ya sea como un ejemplo concreto o una interfaz
- El modelo de vista no debe saber acerca de la vista todas.
Si usted necesita para manejar eventos, entonces hay dos maneras que conozco de hacerlo:
1: exponer un comando en el modelo de vista, y el uso de enlace de datos para desencadenarla. Esta es mi forma preferida, por ejemplo:
class MyViewModel
{
public ICommand ClickCommand { get; set; }
}
<Button Command="{Binding Path=ClickCommand}" />
Si hace esto, entonces usted puede probar el comando simplemente llamando myViewModel.ClickCommand.Execute
manualmente.
2: exponer una función en el modelo de vista, y escribir el absoluta mínima en el archivo .xaml.cs
para controlar el evento y llame a la función, por ejemplo:
class MyViewModel
{
public void HandleClick(){ }
}
<Button Click="MyClickHandler">
//.xaml.cs file
public void MyClickHandler(Object sender, EventArgs e) {
m_viewModel.HandleClick()
}
Si hace esto, entonces puede probar simplemente llamando al myViewModel.HandleClick
manualmente. ¡No debería molestarse con probar el código de la unidad MyClickHandler
ya que solo tiene 1 línea!