0

我有两个窗口(表格)。在第一个窗口中我有一个组合框,在第二个窗口中我有一个按钮。单击窗口 2 中的按钮时,如何设置窗口 1 中组合框的 selectedindex?

我试过这个没有成功:

在窗口 1 中:

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

在窗口 2 中:

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

                firstwindow.OutputCombostr = 3;
            }
4

2 回答 2

1

您需要了解如何获取对MainWindow类的现有实例的引用。如果这是 WPF 并且该窗口确实是您的启动对象,那么您应该能够通过Application.MainWindow(而不是更新它)访问它。

或者,您可能会研究类似事件聚合器模式的东西。这是一个可以用作起点的 SO 问题:尝试理解事件聚合器模式

于 2012-11-15T18:02:16.813 回答
0

使用 MVVM 对您非常有用,但您也可以使用以下代码获得对主窗口的引用:Application.Current.MainWindow或获取所有应用程序的窗口:Application.Current.Windows

要访问组合框,您首先需要在 xaml 代码中为其命名:<ComboBox x:Name="comboBox">...然后,从第二个窗口进行强制转换(Application.Current.MainWindow as MainWindow).comboBox.IsChecked,假设您的主窗口的类是 name MainWindow。另外我认为最好使用 MVVM 模式来解决这个问题。

希望这可以帮助你...

于 2012-11-15T19:16:08.337 回答