簡體   English   中英

如何從 C# WPF 中的頁面訪問 MainWindow 變量?

[英]How to access a MainWindow variable from a page in C# WPF?

我正在嘗試編寫 WPF 桌面應用程序。 目前我在同一解決方案下有一個主要的 Window (MainWindow)和一個頁面(Pageone) 在我的MainWindow.xaml.cs頁面中,我有一個變量(proc1) ,我想將它傳遞給我的Pageone.xaml.cs頁面,將來可能還會有更多頁面來訪問和用於某些計算。

但是我似乎找不到成功執行此操作的方法,我嘗試將變量設為“public” ,並為我的頁面實例化MainWindow object 以訪問它,但它似乎不起作用。 (A field initializer cannot reference the non-static field, method, or property 'Pageone.pog')

主窗口.xaml.cs

public string proc1;

public void startTroubleshootButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var selectedProcess = listViewProcesses.SelectedItems[0] as myProcess;
                if (selectedProcess == null)
                {
                    MessageBox.Show("no selection made");
                    return;
                }

                proc1 = selectedProcess.processName;

                MessageBox.Show($"you have selected the {proc1} application ");

                Pageone pg = new Pageone(this);
                this.Content = pg;


            }
            catch(ArgumentOutOfRangeException)
            {
                return;
            }
        }

Pageone.xaml.cs

    public partial class Pageone : Page
    {

        public Pageone(MainWindow mainWindow)
        {
            InitializeComponent();   
        }
        MainWindow pog = new MainWindow();
        string procName = pog.proc1;

     ...

我聽說我可能需要使用稱為 MVVM 的東西或編寫參數化構造函數,但我不確定它是否與我正在執行的代碼有關。 有沒有更好的方法來 go 關於編碼這個? 謝謝。

可以這樣做:

var window = (MainWindow)Application.Current.MainWindow;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM