如何在更改依赖项属性后调用方法

本文关键字:属性 调用 方法 依赖 | 更新日期: 2023-09-27 18:31:25

我有一个使用MVVM模式的WPF应用程序。我的项目中有一个窗口,并在我的窗口中使用了一个CustomControl。我需要在我的窗口中有两个命令,用于在我的CustomControl中开始和停止。所以我使用这样的bool DependencyProperty

public static readonly DependencyProperty IsStartModeProperty = DependencyProperty.Register(
    "IsStartMode", typeof(bool), typeof(RadarView), new FrameworkPropertyMetadata(false, OnCurrentReadingChanged));
public bool IsStartMode {
    get { return (bool)GetValue(IsStartModeProperty); }
    set { SetValue(IsStartModeProperty, value); }
}

在我的依赖项属性中还使用以下方法用于回调委托:

public static void OnCurrentReadingChanged(DependencyObject doj, DependencyPropertyChangedEventArgs dp) {
    if (IsStartMode)
        Start();
    else
        Stop();
}

我的问题正在从 up 方法中的IsStartMode属性中使用,因为这不是静态的。它有一个构建错误。

正确是我的解决方案吗? 如果正确,我做什么?

如何在更改依赖项属性后调用方法

您需要将

第一个方法参数强制转换为依赖项对象类:

public static void OnCurrentReadingChanged(DependencyObject doj, DependencyPropertyChangedEventArgs dp) 
{ 
    var myObject = (RadarView)doj;
    if (myObject.IsStartMode) 
        myObject.Start(); 
    else 
        myObject.Stop(); 
} 

(作为旁注,我会称该物业为IsRunning