如何从第二个窗口访问 MainWindow 的变量

测试员

是否有另一种方法来访问MainWindowpublic变量而不是:

MainWindow mainWindow = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();
mainWindow.variable....

这工作正常,但我正在创建一个WPF应用程序并将 a 集成USB Webcam到我的项目中,并使用上面的代码访问MainWindow的变量。这会导致一些问题,例如当我关闭时程序仍在运行MainWindow并且相机不会停止。有什么建议么?

伊戈尔

这是我在评论中写的一个过于简化的例子(你真的应该看看mvvm下面的例子不是mvvm)。

public class SelectedIndexData
{
    public int SelectedIndex { get; set; }
}

public partial class MainWindow : Window
{

    private readonly SelectedIndexData _selectedIndexData = new SelectedIndexData();
    public MainWindow()
    {
        InitializeComponent();
    }


    private void ComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        _selectedIndexData.SelectedIndex = ComboBox.SelectedIndex;
    }


    private void ShowChildWindow(object sender, RoutedEventArgs e)
    {
       new ChildWindow(_selectedIndexData).Show();
    }
}

public partial class ChildWindow : Window
{
    private SelectedIndexData _selectedIndexData;
    public ChildWindow(SelectedIndexData selectedIndexData)
    {
        InitializeComponent();
        _selectedIndexData = selectedIndexData; // do whatever you want with your data here

    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在MVVM和松耦合之后从MainWindow打开第二个窗口

关闭在MainWindow WPF中创建的第二个窗口

将变量从 MainWindow 传递到新窗口

当我单击 WPF (.NET Core) 中第二个窗口的“确定”按钮时,禁用 MainWindow 按钮并返回到 MainWindow 的初始状态

获取第二个窗口将变量传递给主ui并关闭

为什么第二个角色对第二个变量迷路

如何从C#WPF中的页面访问MainWindow变量?

在第一个文件中导入第二个文件时,如何从第一个 python 文件访问全局变量到第二个

从第二个视图控制器访问全局变量时的预期声明

在反应式编程中无法访问第二个函数之外的变量

访问在第二个线程的主线程中定义的变量?

如何用R中的第二个变量范围除变量的每个范围

UWP 应用 MainWindow 不显示左侧的第二个按钮

javascript:修改第二个变量首先修改

scanf不会为第二个变量赋值

scanf正在覆盖第二个变量

变量不传递给第二个php

用第二个参数替换()作为变量?

如何向 jQuery 小部件“自动完成”添加第二个变量值?

如何获得按第二个变量分组的单词频率计数(Python)

numpy重塑如何使用负变量作为第二个参数

如何检查变量元组是否导致第二个元组列表中的匹配?

如何在 R 上的 ggplot 中显示第二个变量

如何将第二个变量添加到简单的javascript函数?

如何在第二个嵌套的while循环中使变量值可用?

如何在Qt C ++中将变量从MainWindow传递给SecondWindow

每次变量更改时,PYQT5 都会在第二个窗口中更新标签

计算器,在选择运算符后键入第二个变量时清除窗口

如何运行两个makefile目标,以便第二个使用第一个的变量?