WPF获取MainWindows实例

发布时间 2023-07-13 15:24:21作者: ouououu

WPF获取MainWindow实例

在其他类中获取MainWindow实例,获取其控件,改变其控件属性等,代码如下:

 _mainWindow = Application.Current.Windows.Cast<Window>().FirstOrDefault(Window => Window is MainWindow) as MainWindow;

例如在ConfigureViewModel中改变MainWindow中的某个TextBox控件,Name="T1"的Text属性:

using System.Windows;// 注意引入命名空间
namespace Test.ViewModels
{
    class ConfigureViewModel 
    {
        // 先注册
        private MainWindow _mainWindow;

        public ConfigureViewModel()
        {
            // 获取实例
             _mainWindow = Application.Current.Windows.Cast<Window>().FirstOrDefault(Window => Window is MainWindow) as MainWindow;
        }

        /******* Comamnd *******/
        public void Test ()
        {
            _mainWindow.T1.Text="Hello";// 获取MainWindow中的T1对象的Text属性值。
                                        // T1 为TextBox控件
        }
    }
}