0

私はすでに一日中解決策を探しています。私はMVVMの初心者で、次の問題があります。これは私のviewmodelLocatorのコードです:

    static ViewModelLocator()
    {
        ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

        if (ViewModelBase.IsInDesignModeStatic)
        {
            // Create design time view services and models
            SimpleIoc.Default.Register<IDataService, DesignDataService>();
        }
        else
        {
            // Create run time view services and models
            //SimpleIoc.Default.Register<IDataService,DataService>();
    SimpleIoc.Default.Register<IDataService, OleDbDataService>();
        }
  SimpleIoc.Default.Register<A>();
  SimpleIoc.Default.Register<B>();

    }


  public A a      {
    get { return ServiceLocator.Current.GetInstance<A>(); }
  }

public B b    {
  get
  {
    return ServiceLocator.Current.GetInstance<B>();
  }
}

A からデータを更新した後、B を開きたいのですが、次のようにします。

private void A_Button_Click(object sender, RoutedEventArgs e)
{
  var bWindow = new bView();
  bWindow.Show();
  this.Close();
}

これは機能しますが、B は A からのデータを使用し、更新されたデータはプログラムを閉じて再度開くまで表示されません。Viewmodellocator とメッセージに関係があることを読みましたが、私はこれにかなり慣れていないため、「クリーンアップ」を行う必要がある方法や場所が正確にはわかりません。

誰でもこれで私を助けてもらえますか? 前もって感謝します。

4

0 に答える 0