静态 属性 在 WPF 中调用非静态方法

Static Property calling non-static method in WPF

我有多个 ViewModel,并且在所有视图模型中都使用 ViewModelBase 作为抽象 class。我想从另一个 class 中获取当前 属性 值。创建一个实例是不可取的,使 属性 静态得到我想要的。但是,通过这样做,我失去了使用 ViewModelBase.Set() 的 INotifyPropertyChange Im,因为 Set() 是一种非静态方法。

我可以获得 属性 值的替代方法是什么,但仍保留 MVVM 中 ViewModelBase 的优势?

public class SampleViewModel : ViewModelBase
{
   private static bool _sample;
   public SampleViewModel()
   {
   }
   public static bool GetValue
   {
      get { return _sample; }
      set { Set(ref _sample, value); }
   }
}

public class MyClassViewModel : ViewModelBase
{
   public MyClassViewModel()
   {
      bool myValue = SampleViewModel.GetValue;
   }
}

ParentVM 创建一个 ChildVM,通过 ChildVM 公开它 属性 ParentView 处理生成的 PropertyChanged 事件,创建一个 ChildView,将其 DataContext 设置为 ChildVM。

here for details.

use MVVM Light Toolkit's Messaging Services to pass values to view Models.。但是我不喜欢。