wpf mvvm-将事件从ViewModel发送到视图

时间:2019-05-15 01:27:43

标签: c# wpf mvvm

我试图在视图模型中对某些数据更改执行视图中的功能。 我有一块电路板,当输入发生变化时,viewmodel数据会在要命令的事件中发生变化,然后我需要通知视图所有数据属性均已设置为仅从视图重新加载电路板。 我的方法是从视图模型发送一个事件到视图,在这里我被困住了(在这里我需要帮助)。

2 个答案:

答案 0 :(得分:-1)

我同意Ilian的观点-对于MVVM Light's Messenger来说,这似乎是一个很好的用例,或者与您正在使用的任何MVVM框架等效(或没有)。简而言之,我们想实现一个中介模式来与您的视图进行交流。

我为此提供了a good example和概述,以及使用View提供给其ViewModel的IViewService的另一种选择。

(DataTriggers是另一种可能的方法,但是您的问题缺少有关如何构造视图,数据绑定等的一些详细信息。)

答案 1 :(得分:-1)

一种便宜而简单的方法是创建属性依赖项,然后将其绑定到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}" />