Задать вопрос
@SergeySerge11

Как вызвать функцию на представление с контроллера в mvc паттерне?

//Аналогия к прмиеру
class Ctrl{
 View view; 
public void fun(){
         //..... 
        //....
         view.SendResult(res);
 }
}
public class View{
      void SendResult(int res){
              LayoutUpdate(); 
      }
}

Как переделать этот код если Ctrl не имеет ссылки на View?
В лучшем случае у меня будет какое-то свойство или команда, но команды работают в одну сторону, а мне надо в другую сторону.

К примеру на контроллере таймер, и он должен вызывать функцию к примеру LayoutUpdate();
Вообще как правильно надо решать такую задачу. Каждый раз обходные пути пишу.
К примеру в WPF DataContext не должен иметь обратную ссылку на объект привязки.
// какие есть альтернативы в стиле самурая   такому?
 // MainWindow.xaml
 ((MyCtrl)this.DataContext).Delegate=fun;
  • Вопрос задан
  • 44 просмотра
Подписаться 1 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ответы на вопрос 2
yarosroman
@yarosroman Куратор тега C#
C# the best
1. MessageBus как вариант.
2. Делайте свой UserControl с таймером, который будет его обновлять как надо, а к нему уже данные привязывать необходимые.
Ответ написан
Комментировать
AshBlade
@AshBlade Куратор тега C#
Просто хочу быть счастливым
Сделай колбэк
class Ctrl
{
    Action<int> _callback; 
    public void fun()
    {
         // ...
         _callback(res);
     }
}

public class View
{
    void SendResult(int res)
    {
           LayoutUpdate(); 
    }
}


P.S. только в случае с GUI надо еще помнить, что обновления нужно делать в UI потоке
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы