WPF中两个独立视图之间的通信

时间:2013-01-11 23:39:09

标签: c# wpf xaml mvvm

我的 MainWindows.xaml 包含两个Controls元素。第一个与MapView.xaml <Controls:MapView /> 相关联,第二个与InfoView.xaml <Controls:InfoView /> 相关联。现在我想从 InfoView dataContext 对象 InfoViewModel MapView DataContext对象 MapViewModel 执行方法>

我该怎么做?

MapView.xaml.cs

public MapView()
    {
        InitializeComponent();
        _mapViewModel = new MapViewModel();
        this.DataContext = _mapViewModel;
    }

InfoView.xaml.cs

public InfoView()
    {
        InitializeComponent();
        _infoViewModel = new InfoViewModel();
        this.DataContext = _infoViewModel;
    }

1 个答案:

答案 0 :(得分:1)

其中一个方法是使用EventAggregator和您自己的事件从源发送通知并在订阅者中捕获它。

这种方法的一个优点是它是通用的,您可以从任何地方向任何地方发送任何消息以完成任何事情,您从源发送消息并在订阅者中捕获它。

EventAggregator内置于Prism中。