如何使用主窗口C#WPF中的getter

如何使用主窗口C#WPF中的getter,c#,wpf,xaml,getter,C#,Wpf,Xaml,Getter,我的问题是,我不能在另一个类中使用getter,因为getter在MainWindow.xaml.cs类中 当我在另一个类ControlKey.cs中使用此代码*时,我得到一个异常,即应用程序处于挂起状态。我想它想创建另一个窗口,但我只想使用ControlKey.cs类中的getter MainWindow.xaml.cs类: * ControlKey.cs类: MainWindow mWindow=newmainWindow() bool presentationStarted; 然后我有

我的问题是,我不能在另一个类中使用getter,因为getter在MainWindow.xaml.cs类中

当我在另一个类ControlKey.cs中使用此代码*时,我得到一个异常,即应用程序处于挂起状态。我想它想创建另一个窗口,但我只想使用ControlKey.cs类中的getter

MainWindow.xaml.cs类:


*

ControlKey.cs类:

MainWindow mWindow=newmainWindow()

bool presentationStarted;
然后我有一个if语句,如果presentationStarted是真的,我会做一些事情。


我不知道该怎么做。我希望有人能帮助我

MainWindow的每个实例都有自己的
PresentationStart
副本。如果您希望从应用程序的主窗口中获取
presentationstarted
的值,则不能仅创建一个新的MainWindow实例。这个新实例与已经显示的另一个实例无关

但是您可以获得实际的主窗口本身

var mWindow = (MainWindow)App.Current.MainWindow;

var x = mWindow.GetPresentationStarted();

这是可行的,但这不是编写WPF应用程序的最佳方式。您应该真正了解MVVM(“模型-视图-视图-模型”)模式。然后,每个窗口都有自己的viewmodel,它拥有类似于该窗口的属性,并且所有viewmodel都可以共享对某个公共viewmodel的引用,该引用具有每个人都关心的状态。带有MVVM模式的WPF非常强大。然而,学习曲线是粗糙的

主窗口的每个实例都有自己的
presentationsarted
副本。如果您希望从应用程序的主窗口中获取
presentationstarted
的值,则不能仅创建一个新的MainWindow实例。这个新实例与已经显示的另一个实例无关

但是您可以获得实际的主窗口本身

var mWindow = (MainWindow)App.Current.MainWindow;

var x = mWindow.GetPresentationStarted();

这是可行的,但这不是编写WPF应用程序的最佳方式。您应该真正了解MVVM(“模型-视图-视图-模型”)模式。然后,每个窗口都有自己的viewmodel,它拥有类似于该窗口的属性,并且所有viewmodel都可以共享对某个公共viewmodel的引用,该引用具有每个人都关心的状态。带有MVVM模式的WPF非常强大。然而,学习曲线是粗糙的

因为您不需要MainWindow类中的任何其他参数,所以请尝试使用: 1.静态特性。例如,您可以创建

public static bool? MainWindow.PresentationStarted {get; private set;} 
并设置您喜欢的任何事件的值

2.创建共享实例,如:

public static bool? SharedClass.MainPresentationStarted {get; set;}.
因此,您可以访问该值:

if (MainWindow.PresentationStarted == true)

因为您不需要MainWindow类中的任何其他参数,所以请尝试使用: 1.静态特性。例如,您可以创建

public static bool? MainWindow.PresentationStarted {get; private set;} 
并设置您喜欢的任何事件的值

2.创建共享实例,如:

public static bool? SharedClass.MainPresentationStarted {get; set;}.
因此,您可以访问该值:

if (MainWindow.PresentationStarted == true)

这听起来不对。视图不应该知道这类内容,查看使用MVVMorry,我不明白你的意思:/噢,这意味着我不能使用:MainWindow mWindow=new MainWindow();我无法从主窗口获取presentationStarted的值。非常感谢。但是在我的另一节课上我怎么能使用getter呢?我需要一个对MainWindow类的方法的引用,这听起来不太正确。视图不应该知道这类内容,查看使用MVVMorry,我不明白你的意思:/噢,这意味着我不能使用:MainWindow mWindow=new MainWindow();我无法从主窗口获取presentationStarted的值。非常感谢。但是在我的另一节课上我怎么能使用getter呢?我需要一个关于主窗口类方法的参考,非常感谢。我现在就试试这个!我知道我必须提高我的“技能”:/非常感谢。我现在就试试这个!我知道我必须提高我的“技能”:/