wpf mvvm - отправка события из viewmodel в представление - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь выполнить функцию в представлении о некоторых изменениях данных в модели представления. У меня есть доска, когда изменяются входные данные, данные модели представления изменяются в событии по команде, тогда мне нужно сообщить представлению, что все свойства данных установлены для перезагрузки платы только из представления. Мой подход заключается в отправке события из viewmodel для просмотра, и вот я застрял (здесь мне нужна помощь).

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Дешевый и простой способ сделать это - создать зависимость от свойства, а затем привязать ее к вашей модели представления в xaml

    public static readonly DependencyProperty RefreshViewProperty =
        DependencyProperty.Register("RefreshView", typeof(bool), typeof(MyView), new PropertyMetadata(false, OnRefreshViewChanged));

    private static void OnRefreshViewChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        MyView mv = (MyView)d;

        mv.DoStuff();

        ((MyViewModel)mv.DataContext).RefreshFromViewModel = false;
    }

xaml:

<MyView RefreshView="{Binding RefreshFromViewModel}" />
0 голосов
/ 15 мая 2019

Я согласен с Ilian - это похоже на хороший вариант использования для Messenger MVVM Light или эквивалент для любой используемой вами инфраструктуры MVVM (или ни одной). Короче говоря, мы хотим внедрить шаблон-посредник для связи с вашим взглядом.

Я предоставляю хороший пример и обзор этого, а также другую альтернативу, используя IViewService, который View предоставляет своей ViewModel ..

(DataTriggers был бы другим возможным подходом, но в вашем вопросе отсутствуют некоторые подробности о том, как строится ваше представление, привязывается к данным и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...