我有两个窗口(窗体)。在第一个窗口我有一个组合框,在第二个窗口我有一个按钮。当单击窗口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;
}
答案 0 :(得分:1)
您需要了解如何获取对MainWindow
类的现有实例的引用。如果这是WPF并且该窗口确实是您的启动对象,那么您应该能够通过Application.MainWindow
访问它(而不是新建它)。
或者,您可能会查看类似事件聚合器模式的内容。这是一个可以用作起点的问题:Trying to understand the event aggregator pattern
答案 1 :(得分:0)
使用MVVM对您非常有用,但您也可以使用以下代码获取对主窗口的引用:Application.Current.MainWindow
或获取所有应用程序的窗口:Application.Current.Windows
。
要访问组合框,首先需要在xaml代码中为其命名:<ComboBox x:Name="comboBox">...
然后,从第二个窗口创建一个强制转换(Application.Current.MainWindow as MainWindow).comboBox.IsChecked
,假设您的主窗口的类名为{{ 1}}。另外我认为最好使用MVVM模式来解决这个问题。
希望这对你有帮助......