1

このスレッドスレッドから

このコメントのメッセージを使用して新しいウィンドウを開くことができますが、新しく開いているウィンドウにパラメータを渡したいです。これについて何か考えはありますか?

ありがとうございました。

4

2 に答える 2

2

を使用します。NotificationMessage<T>から継承する必要はありませんNotificationMessage

例(プロジェクトでTelerik Dockingフォームコンテナを使用しているので、RadPaneのものを無視できます-うまくいけば、アイデアが得られます)

using GalaSoft.MvvmLight.Messaging;

public MainWindow()
{

    InitializeComponent();
    Messenger.Default.Register<NotificationMessage<MyEntities.Company>>(this, (c) => NotificationMessageReceived(c.Notification, c.Content));
}

private void NotificationMessageReceived (string msg, MyEntities.Company c)
{
   if (msg == "ShowCompany") 
   {
      var CompanyPane = new RadDocumentPane();

      CompanyPane.Header = c.Name; // I use the  Name property of my company entity here

      CompanyPane.Content = new Views.CompanySummaryView(); 
      this.radPaneGroup.AddItem(CompanyPane, DockPosition.Center);
   }
}

新しいウィンドウを開きたいビューモデルには、コマンドから呼び出すこのメソッドがあります。これは、Companyエンティティが埋め込まれたメッセージを送信するだけです。

public void EditCompany()
{
    Messenger.Default.Send<NotificationMessage<MyEntities.Company>>(new NotificationMessage<MyEntities.Company>(Companies.FirstOrDefault(), "ShowCompany"));
}
于 2013-01-18T11:40:52.473 に答える
0

NotificationMessageを継承するカスタムクラスを作成し、必要なものを設定して渡し、ビュー側でカスタムクラスにキャストし直します。これがお役に立てば幸いです。

于 2012-07-13T04:10:17.520 に答える