0

2 つのウィンドウ (フォーム) があります。最初のウィンドウにはコンボボックスがあり、2 番目のウィンドウにはボタンがあります。ウィンドウ 2 のボタンがクリックされたときに、ウィンドウ 1 のコンボボックスの selectedindex を設定するにはどうすればよいですか?

私は成功せずにこれを試しました:

Window1 で:

public int OutputCombostr
    {
        get { return this.OutputCombo.SelectedIndex; }
        set { this.OutputCombo.SelectedIndex = value; }
    }

Window2:

  private void Button_Click_2(object sender, RoutedEventArgs e)
            {
                MainWindow firstwindow = new MainWindow();

                firstwindow.OutputCombostr = 3;
            }
4

2 に答える 2

1

MainWindowクラスの既存のインスタンスへの参照を取得する方法が必要です。Application.MainWindowこれが WPF であり、そのウィンドウが実際に起動オブジェクトである場合は、 (新規作成するのではなく)経由でアクセスできるはずです。

または、イベント アグリゲーター パターンのようなものを調べることもできます。出発点として使用できる SO の質問は次のとおりです:イベント アグリゲーター パターンを理解しようとしている

于 2012-11-15T18:02:16.813 に答える
0

MVVM を使用すると非常に便利ですが、次のコードを使用してメイン ウィンドウへの参照を取得することもできます:Application.Current.MainWindowまたは、すべてのアプリケーションのウィンドウを取得するために: Application.Current.Windows.

コンボボックスにアクセスするには、最初に xaml コードで名前を付ける必要があります。次に、メイン ウィンドウのクラスが name であると仮定して<ComboBox x:Name="comboBox">...、2 番目のウィンドウからキャストを作成します。また、これを解決するにはMVVMパターンを使用する方が良いと思います。(Application.Current.MainWindow as MainWindow).comboBox.IsCheckedMainWindow

これがあなたに役立つことを願っています...

于 2012-11-15T19:16:08.337 に答える