MVVM ViewModels 之一不接收消息

One of MVVM ViewModels does not receive messages

我在一个 MainViewModel 中发送消息:

private void TextBoxKeyDownVMMethod(KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        MessengerInstance.Send<Messages.WebTab.NavigatingToPageArgs>(new NavigatingToPageArgs { UrlForNavigating = "" });
        //GoToPageInSelectedTabVMCommand.Execute((object)null);
        Keyboard.ClearFocus();
    }
} 

我收到的是另一个:

public WebTabItemVievModel()
{       
    MessengerInstance.Register<NotificationMessage<Messages.WebTab.NavigatingToPageArgs>>(this, _MessageHandler_NavigatingToPage);
}

private void _MessageHandler_NavigatingToPage(NotificationMessage<NavigatingToPageArgs> args)
{
    GoToPageCommand.Execute(args.Content.UrlForNavigating);
}

WebTabItemVievModel 在 MainViewModel 的构造函数中创建为 ObservableCollection, 此集合是选项卡控件的 ItemsSource

public MainViewModel()
        {            
            WebTabItems = new ObservableCollection<WebTabItemVievModel>();            
            WebTabItemVievModel tabItem; 
            tabItem = ServiceLocator.Current.GetInstance<WebTabItemVievModel>();
            tabItem.Header = "Empty tab";
            WebTabItems.Add(tabItem);
            tabItem = new WebTabItemVievModel { Header = "Empty tab" };
            WebTabItems.Add(tabItem);
            tabItem = new WebTabItemVievModel { Header = "Empty tab" };
            WebTabItems.Add(tabItem);           
            tabItem = new WebTabItemVievModel() { AddNewTabOnTabHeaderClick =true};
            WebTabItems.Add(tabItem);
}

WebTabItemVievModel 有自己的可视化用户控件,通过 MainWindow.xaml 中的资源定义绑定:

<Window.Resources>
    <DataTemplate DataType="{x:Type vm:WebTabItemVievModel}"  >
        <v:WebTabItemContentViev></v:WebTabItemContentViev>
    </DataTemplate>
</Window.Resources>

Locator在注册时已经有true参数。它没有改变任何东西:

    SimpleIoc.Default.Register<WebTabItemVievModel>(true);
    SimpleIoc.Default.Register<MainViewModel>(true);

谁知道为什么 WebTabItemVievModels 没有收到消息?

注册时的类型是

通知消息

但是发送的时候类型是 Messages.WebTab.NavigatingToPageArgs

使类型相同,它应该可以工作