Durante la lettura di esempi su Internet (incluso il riferimento MSDN) ho trovato che gli esempi di codice fanno tutti il seguente tipo di cose:
public class FooViewModel : BaseViewModel {
public FooViewModel(FooController controller) {
Controller = controller;
}
protected FooController Controller { get; private set; }
public void PerformSuperAction() {
// This just routes action to controller...
Controller.SuperAction();
}
...
}
e quindi per la vista:
public class FooView : BaseView {
...
private void OnSuperButtonClicked() {
ViewModel.PerformSuperAction();
}
}
Perché non facciamo solo ciò che segue?
public class FooView : BaseView {
...
private void OnSuperButtonClicked() {
ViewModel.Controller.SuperAction();
// or, even just use a shortcut property:
Controller.SuperAction();
}
}