[英]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.