public T CreateAndBindMediator <T>(View <T> view) where T : class { var viewType = view.GetType(); Type mediatorType; if (!_mediators.TryGetValue(viewType, out mediatorType)) { throw new ContainerException("Can't find mediator for view type " + viewType.Name); } var mediator = Resolve(mediatorType); SetupView(mediator, view); EventBinder.BindEventHandlers(mediator, view); var m = mediator as IMediator; if (m != null) { m.AfterViewBinded(view); } return((T)mediator); }