WPF主窗口中调用其他页面

(1)首先需要在主窗口的前端(MainWindow.xaml)定义一个按钮,并绑定一个命令

Command="{Binding MyIMDGSegregationWindow.OpenMainWindow}"

(2)在主窗口的VM中(MainViewModel.cs)中注册原页面的VM,即 

public MyIMDGSegregationViewModel MyIMDGSegregationWindow { get; set; }
private void LoadIMDG()
{
      MyIMDGSegregationWindow= ServiceLocator.Current.GetInstance<MyIMDGSegregationViewModel>();
}

(3)在原页面的VM中定义一个命令OpenMainWindow。

 private RelayCommand openmainwindow;
        public RelayCommand OpenMainWindow
        {
            get
            {
                if (openmainwindow == null)
                {
                    return new RelayCommand(() => OpenWindowFunc());
                }
                return openmainwindow;
            }
            set
            {
                openmainwindow = value;
            }
        }
        public object OpenWindowFunc()
        {

            if (MyIMDGSegregationWindow == null)
            {
                MyIMDGSegregationWindow = new MyIMDGSegregation();
                MyIMDGSegregationWindow.Closed += NewWindowClosed;
                MyIMDGSegregationWindow.Show();
            }
            else
            {
                MyIMDGSegregationWindow.Activate();
            }
            return null;
        }
private MyIMDGSegregation MyIMDGSegregationWindow;

其中MyIMDGSegregation是原页面,

        private void NewWindowClosed(object sender, EventArgs e)
        {
           
        }

 


版权声明:本文为junjunjiao0911原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。