2

WPFにはwindow1とwindow2(これはポップアップである必要があります)という2つのウィンドウがあります。

私がやりたいのは、ポップアップウィンドウ(window2)のボタンがクリックされたときに、window1でメソッドを実行したいということです。window1 を windows2 に渡すことでこれを実現できますが、メモリ効率の良い方法ではないと思います。

routedCommand に関する赤い記事がありますが、わかりにくいです。私はc#に取り組んでおり、どんな助けも大歓迎です

ありがとうございました

4

1 に答える 1

1

多くの場合Current、自分のMainViewModel(または ViewModel の) の静的プロパティがあり、ViewModel のコンストラクターでそのプロパティを設定します。次に、アプリケーションの他の場所から、問題の ViewModel への参照を取得できます。

ViewModel について

    public MainViewModel()
    {
        Current = this;
    }

    public static MainViewModel Current { get; set; }

アプリケーションのその他の場所:

MainViewModel.Current.DoSomething();

ルーティングされたコマンド

通常、ルーティングされたコマンドはデータバインドされているため、コマンド ロジックはそれが書き込まれるデータ コンテキストによって異なります。Window1 の DataContext が MainViewModel で、Window2 の DataContext が SecondViewModel の場合、Window2 のボタンで MainViewModel のコマンドを実行するには、そのボタンの DataContext として MainViewModel のインスタンスへの参照が必要です。

于 2013-04-22T14:51:58.260 に答える